1. 多線程和多進(jìn)程的區(qū)別:
進(jìn)程之間不共享內(nèi)存危号,線程之間可以共享內(nèi)存
多進(jìn)程可以利用多顆cpu牧愁,多線程不行。
2. cpu全局解釋器鎖(GIL)
在每個(gè)進(jìn)程的出口外莲,多個(gè)線程任務(wù)請(qǐng)求cpu調(diào)度猪半,只有一個(gè)線程能夠穿過(guò),所以單個(gè)進(jìn)程不管有多少線程只能調(diào)度一個(gè)cpu偷线。
3. 多線程磨确、多進(jìn)程如何選擇:
計(jì)算密集型應(yīng)用:能夠利用多顆cpu的性能,采用多進(jìn)程声邦;
IO密集型應(yīng)用:大量的IO操作乏奥,調(diào)度一顆cpu足以,采用多線程亥曹。
4. 主線程:
程序從上往下執(zhí)行邓了,解釋器的執(zhí)行過(guò)程,叫主線程媳瞪。