用了執行緒互斥鎖和序列有什麼區別嗎?

時間 2021-09-18 12:48:04

1樓:acebear

你家五口人(旁白:這是響應國家號召設定3個孩子)吃飯,做了一大海碗雞湯;為了衛生,你家約定喝雞湯用「公用勺」舀到自己碗裡

序列:就是你爹先吃,你爹吃完了,你娘才能開始吃;你娘吃完了,你姐才能吃;你姐吃完了,你才能吃;你吃完了,你妹妹才能吃(旁白:搞笑吧,又不是猴,為啥要搞這麼森嚴的等級龜腚)

互斥鎖:大家可以一起吃;只是你爹在舀湯時,占用了鎖(公用勺);你這時,要麼等待,要麼吃公尺飯,要麼喝先前已經舀到自己碗裡的湯;必須等你爹釋放鎖(把公用勺)放回去了,下乙個人才能占用鎖(用公用勺)舀湯(旁白:這才是人類社會啊)

你家要是有不止乙個公用勺,那就是更加高階的 semaphore 了

2樓:匿名

1.如果處理的任務是可以分成多步,使用流水線技術實現幾個步驟同時進行,那麼是可以提高執行效率的。類似cpu流水線技術

2.執行的程式有即時響應的需求。例如你有乙個執行緒處理ui,那麼這個執行緒就不能做過多的io等耗時操作。

3樓:彭貞

在IO密集型程式中,這種序列執行的執行緒任然很有意義,因為有的執行緒在等待IO(比如網路,磁碟等等),這時候可以利用等待的時間去執行其他執行緒,這能提高CPU利用率,提高程式效能。其實IO密集型程式是屬於多數情況

Java中線程同步鎖和互斥鎖有啥區別?

油點筆鼠 大寬寬 chen Kingwen 兩個大神都把問題解釋的很清楚了,以下做補充 什麼時候需要用鎖?在沒有十足把握的情況下,如果多個執行緒都會修改同乙個變數,必須要用鎖,是必須。互斥的字面意思是相互排斥,通常我們說執行緒 A 與執行緒 B 互斥,意思是兩個執行緒在某乙個場景中不能同時執行。同步...

平行計算與序列計算有什麼區別?

楚天樂 什麼是平行計算平行計算的任務是找出程式中沒有依賴關係的的部分,讓他們同時執行,以縮短程式執行時間。過程將任務劃分成塊,分片分發給處理器,等待處理結果,彙總。效能我們假設乙個程式中有f 0到1之間 是沒有依賴關係的可以並行執行的,在假設我們可以n個核心去執行他,另外假設序列執行是要時間t。首先...

和 有什麼區別?

慶悅 異同 相同點 都表示 嘗試 的含義 不同點表示 嘗試了,但是未取得結果 側重目的沒有達到 例子如下我嘗試解決這個問題,但沒有成功 抽菸喝酒不燙頭 嘗試在俄語裡有很多種 1試吃4格也可表達嘗試按時到 2試穿量身 3 努力嘗試 4 竭盡全力try your best in a competitio...