阿里面試題 如何減少上下文切換?

2021-07-27 15:37:26 字數 648 閱讀 1288

阿里面試題-如何減少上下文切換?

執行緒池的關鍵點是:1、儘量減少執行緒切換和管理的開支; 2、最大化利用cpu。

對於1,要求執行緒數盡量少,這樣可以減少執行緒切換和管理的開支;

對於2,要求盡量多的執行緒,以保證cpu資源最大化的利用。

所以對於任務耗時短的情況,要求執行緒盡量少,如果執行緒太多,有可能出現執行緒切換和管理的時間,大於任務執行的時間,那效率就低了;

對於耗時長的任務,要分是cpu任務,還是io等型別的任務。如果是cpu型別的任務,執行緒數不宜太多;但是如果是io型別的任務,執行緒多一些更好,可以更充分利用cpu。

所以:高併發,低耗時的情況:建議少執行緒,只要滿足併發即可;例如併發100,執行緒池可能設定為10就可以

低併發,高耗時的情況:建議多執行緒,保證有空閒執行緒,接受新的任務;例如併發10,執行緒池可能就要設定為20;

高併發高耗時:1要分析任務型別,2增加排隊,3、加大執行緒數

——-摘自 胖子碼農

上下文切換是指cpu的控制權由執行任務轉移到另外乙個就緒任務時所發生的事件;

高併發,低耗時的情況,上下文切換 本來就多,並且高併發就意味著cpu是處於繁忙狀態的, 增加更多地執行緒也不會讓執行緒得到執行時間片, 反而會增加執行緒切換的開銷.

低併發,高耗時,保證有空閒執行緒,接收新任務,可以減少執行緒切換。

阿里面試題

1 請寫出以下 執行結果。var x 1,y 0,z 0 function add x y add x function add x z add x x 1 y 4 z 42 請寫出以下 執行結果。var num 1 var myobject console.log this.num sub fun...

20170804阿里面試題

做完乙個專案後,對前端有什麼新認識?node有哪些模組 整體看 你用到哪些?vue是什麼?給乙個不懂的人講講?有哪些生命週期?怎麼實現的?從哪些方面提公升效能?你是怎麼測試的?原型鏈有哪些層次,object,array,string之類的什麼關係?function.prototype之類的指向什麼?...

alibaba 阿里面試題

123 45animation mymove 5s infinite keyframes mymove to 主要考 animation用法值描述 animation name規定需要繫結到選擇器的 keyframe 名稱。animation duration規定完成動畫所花費的時間,以秒或毫秒計。...