執行緒是靠cpu來執行的,cpu要執行乙個執行緒(不說別的)最起碼就是要占用cpu時間,象windows這樣的多工作業系統,可以允許多個執行緒同時執行,所謂的同時執行並不是真正的同時執行,而是輪流執行不同的執行緒,因為cpu速度很快,如果執行緒不是很多,就會給使用者有所有執行緒在同時執行的錯覺。cpu的排程都是核心來做的,表面上使用者程序自己執行自己的,其實核心很忙的。他會不斷的掛起某個執行緒,去執行另乙個執行緒,回頭再恢復那個執行緒。
先說阻塞,阻塞就是核心突然讓cpu去幹別的事情了,使用者你要等待核心返回訊息。
然後掛起,掛起其實是使用者主動行為,一旦掛起,執行緒就不在需要cpu,核心也不需要再考慮它用不用cpu,直到使用者恢復狀態。
sleep(n),他表示使用者執行緒放棄當前的cpu時間片,n秒後參與cpu使用。sleep(0)是有特殊含義的,他表示此時此刻我放棄cpu時間片,別人可以執行,然後馬上參與cpu競爭。
熱阻的理解
今天早上在看開關電源的設計資料,其中提到開關管的引數選型時有說到熱阻的概念。對於這個概念,一直都感覺沒有徹底理解這個引數,模糊中記得熱阻就像電阻一樣,電阻式阻礙電子流動的量綱,而熱阻就是阻礙熱量流動的量綱。也不知道這樣的理解對不對,因此網上再檢索些資料,以便加深理解。基本概念 ta temperat...
晶元熱阻的理解
基本概念 ta temperature ambient 環境溫度 tc temperature case外殼溫度 tj temperature junction節點溫度 熱阻rja 晶元的熱源結junction到外圍冷卻空氣ambient的總熱阻,乘以其發熱量即獲得器件的溫公升。熱阻rjc 晶元的熱...
關於sleep的理解
unix是按時間片輪轉排程,windows是搶占式排程 以吃蛋糕為例子,10個人吃蛋糕,如果是unix下,假設開始時,每個人都處於就緒狀態,那麼作業系統排程大家排好隊,按順序吃,每個人吃1分鐘,1分鐘就是作業系統給大家分配的時間片,那麼 1 有些人飯量大,吃乙份鐘也不飽,還想吃,但是作業系統在到1分...