參考文章? ?https://www.cnblogs.com/gengcx/p/7500401.html
?1.概念
????GIL,全稱(chēng)為Global Interpreter Lock,中文翻譯即為全局解釋器鎖。全局解釋器鎖并不是pyhton的,而是python解釋器的。由于python官方默認(rèn)的解釋器是cpython,只有解釋器為cpython時(shí)才有全局解釋器鎖,用其他語(yǔ)言編寫(xiě)的解釋器如jpython等就沒(méi)有全局解釋器鎖。
????全局解釋器鎖是為了避免python在執(zhí)行多線(xiàn)程任務(wù)時(shí)產(chǎn)生資源競(jìng)爭(zhēng)及數(shù)據(jù)和狀態(tài)同步時(shí)出錯(cuò)。
????GIL導(dǎo)致在python在多線(xiàn)程時(shí)使用的仍然是單個(gè)CPU,無(wú)法同時(shí)發(fā)揮多個(gè)CPU的作用,要想發(fā)揮多個(gè)CPU的計(jì)算能力,必須使用多進(jìn)程。
2.什么情況下使用多線(xiàn)程?
> 當(dāng)任務(wù)為I/O密集型時(shí),可以使用多線(xiàn)程,提高效率。
> 當(dāng)任務(wù)為計(jì)算密集型時(shí),使用多進(jìn)程。