人腦多執行緒工作

2021-07-27 14:32:34 字數 1344 閱讀 3019

以前讀中學的時候,曾經訓練自己用左手寫字,藉此來訓練和啟用自己右腦的腦細胞,天真地以為到手左手寫作業能力練的如火純青之時,我到時便可以左右並駕齊驅,提高寫作業的效率,然而這時不可能能,本文參考計算機多執行緒的概念,從這個角度來指導大腦在多工的情況的使用方法。

對於計算機的多執行緒工作機制大家應該都非常熟悉,我們平時程式設計的時候經常會遇到需要用到多執行緒的狀況,比如說,我寫乙個上位機一邊要採集資料,一邊又到實時地顯示波形,我怎麼搞?開乙個執行緒通過tcp/ip協議讀資料,塞佇列,乙個執行緒對包進行解析,在乙個執行緒對資料進行畫圖實時更新上位機畫面,如果沒有這些多執行緒那麼最直觀的就是畫面一卡一卡的,要等到資料完全解析完我才可以畫圖,整個軟體執行起來就不連續。

那麼,實際上,cpu的多執行緒工作並非完全的並行的,只是在乙個很短的時間的內不停地進行任務的切換,從而從毫秒級或者秒級的週期來看似乎就是做個任務在同時執行一樣。

ok,如果人腦想實現這個多執行緒過程大概也是這個思路,但往往我們卻做不到,因為與計算機不同的是,我們在任務切換的時候會產生——切換損耗

切換損耗具體表現為,當從任務a轉換到任務b的後,執行任務b的效率要遠遠不如在非切換的狀態執行任務b,從其形成原因來看,這種損耗可以分為兩類:

由於任務a的認知慣性,對完成任務b產生干擾。

在完成任務b的時候需要對任務b進**景重構,會議起相關背景和時間,這個過程需要消耗時間。

嗯,這樣看來多工切換的方法似乎不是一種明智的工作方式。但實際上在現實的環境中卻不太可能讓我們把事情一件接著一件事做,所以常常我們是被迫切換,對此,解決的方法就是——對切換的時間點進行控制和管理

實際上,每一項任務都能進行分解,有些模組我們比較燒腦,比如說,我們寫**的時候可以分為,碼字,畫圖,調格式,那麼對這個幾個模組進行認知複雜度進行排序,我們會發現碼字是最需要集中注意力的,畫圖次之,調格式實際上並不怎麼費腦。

對於認知複雜度較低的模組來說其所造成的的思維慣性和情景重構損耗相對於核心思考的模組來說要低很多,因此平時在進行任務中斷(可能中途休息去喝杯茶)盡量選擇在進行低認知複雜度度的模組進行的時候。

以上,從切換時間點的角度來解決任務切換的損耗是一種思路,那麼從這種思路可以引發出一種工作方式——集中處理同質性工作

先看下下面這幅圖:

一目了然,加入我們要做ppt和word任務,與其在同乙個任務進行模組切換,不如切換到另乙個任務的相同性質,這樣不需要對大腦進行不同資源和技能的切換(比如說碼字切換到畫圖),從而提高工作效率。

祝大家聖誕快樂!

簡單 工作記錄 多執行緒相關

最近遇到多執行緒的問題,原來使用非同步請求多個介面 n 3次請求 方案一 使用多執行緒一次返回資料,最開始是使用5個執行緒,乙個執行緒順序請求3個介面,超時終止返回 缺點 測試發現必須3個介面全部成功才能取到資料,遇到部分介面失敗資料拿不到 方案二 使用6個執行緒,2個執行緒請求同乙個介面,每個執行...

多執行緒與工作流

本文不是講多執行緒,也不是講在多執行緒中使用工作流什麼的,而是用設計多執行緒的思路講一下工作流的工作思想。net中的system.threading.thread的例子很簡單,以至於許多程式設計師只學了幾個小時就以為自已會多執行緒開發的。沒有直正寫過多執行緒的人是無法體會多執行緒是多麼的 很多人上手...

多執行緒概述及工作原理

執行緒是程式執行的基本原子單位.乙個程序可以由多個執行緒組成.在分布式程式設計中,正確使用執行緒能夠很好的提高應用程式的效能及執行效率.實現原理是將乙個程序分成多個執行緒,然後讓它們併發非同步執行,來提高執行效率.併發執行並不是同時執行 占有cpu 任意時刻還是只能有乙個執行緒占用cpu,只不過是它...