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