我之前看過文章說的是鎖降低性能降低在多個執行緒爭奪鎖,內核態和用戶態之間的切換,想問一下切換在哪?鎖是在內核中管理的么?
uj5u.com熱心網友回復:
應該這么理解,比如2個執行緒用一個鎖。當A先呼叫鎖,鎖住,然后進行處理。這時候B假如要用該鎖,那就必須等A解鎖才可以使用,這個時候B是阻塞的。uj5u.com熱心網友回復:
linux背景關系切換的代價是很大的。uj5u.com熱心網友回復:
因為就像是馬路上的紅綠,汽車跑到紅燈的時候會停下來,綠燈才能繼續跑uj5u.com熱心網友回復:
樓上說的很好了,補充一下二樓說的,切換發生在B阻塞發生時,本來B執行緒是當前正在占用CPU的,由于發生了阻塞,所以B執行緒被切換了,CPU又調度到別的執行緒執行。uj5u.com熱心網友回復:
每一個請求都會占用一個執行緒,例如,當請求量過大,此服務器設計規定可跑1000執行緒,當并發達或者請求量同時超過1000執行緒時,并且系統未處理完請求,這些執行緒就是獨占,所有超過1000的執行緒就要進行排隊,倒置執行緒堵塞。uj5u.com熱心網友回復:
加解鎖和執行緒切換 都要系統開銷的轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/105897.html
標籤:內核源代碼研究區
