最新回答 / 慕俠1360162
IO密集型,確實多線程耗時更短CPU核數可以理解為里面有幾個工人,單核里面只有一個,多核有n個,對于n個工時量的項目,單核需要n小時完成,而多核有n個工人同時干,只需要一個小時就能完成;但python中由于GIL的存在,同時只能有一個線程運行。就好多核里面的n個工人,但同時只能有1個人工作,其他只能劃劃水,多核的優(yōu)勢完全被浪費掉了。而且還多了幾個工人去搶著工作耗費的無意義時間,也就是你所說的時間片的切換耗時,所以導致耗費時間比單線程要更多。
2020-11-09
最新回答 / 慕先生4398378
因為這"老師"有些地方講錯了python用threading.Thread形式開出來的線程, 都活在同一個核上, 所以共用一個GIL而用multiprocessing.Process這樣開出來的進程, 是互相獨立的(可以打印pid號發(fā)現), 每個進程使用各自的GIL, 進程間的GIL不相干.
2020-06-21