Python面試真題-python多線程與多進(jìn)程的區(qū)別
Python多線程與多進(jìn)程的區(qū)別
? ? ? 在UNIX平臺(tái)上,當(dāng)某個(gè)進(jìn)程終結(jié)之后,該進(jìn)程需要被其父進(jìn)程調(diào)用wait,否則進(jìn)程成為僵尸進(jìn)程(Zombie)。所以,有必要對(duì)每個(gè)Process對(duì)象調(diào)用join()方法 (實(shí)際上等同于wait)。對(duì)于多線程來(lái)說(shuō),由于只有一個(gè)進(jìn)程,所以不存在此必要性。
? ? ? 多進(jìn)程應(yīng)該避免共享資源。在多線程中,我們可以比較容易地共享資源,比如使用全局變量或者傳遞參數(shù)。在多進(jìn)程情況下,由于每個(gè)進(jìn)程有自己獨(dú)立的內(nèi)存空間,以上方法并不合適。此時(shí)我們可以通過(guò)共享內(nèi)存和Manager的方法來(lái)共享資源。但這樣做提高了程序的復(fù)雜度,并因?yàn)橥降男枰档土顺绦虻男省?/span>