1、運(yùn)行方式不同
進(jìn)程不能單獨(dú)執(zhí)行,它只是資源的集合。
進(jìn)程要操作CPU,必須要先創(chuàng)建一個(gè)線程。
所有在同一個(gè)進(jìn)程里的線程,是同享同一塊進(jìn)程所占的內(nèi)存空間。
2、關(guān)系
進(jìn)程中第一個(gè)線程是主線程,主線程可以創(chuàng)建其他線程;其他線程也可以創(chuàng)建線程;線程之間是平等的。
進(jìn)程有父進(jìn)程和子進(jìn)程,獨(dú)立的內(nèi)存空間,唯一的標(biāo)識(shí)符:pid。
3、速度
啟動(dòng)線程比啟動(dòng)進(jìn)程快。
運(yùn)行線程和運(yùn)行進(jìn)程速度上是一樣的,沒有可比性。
線程共享內(nèi)存空間,進(jìn)程的內(nèi)存是獨(dú)立的。
4、創(chuàng)建
父進(jìn)程生成子進(jìn)程,相當(dāng)于復(fù)制一份內(nèi)存空間,進(jìn)程之間不能直接訪問
創(chuàng)建新線程很簡(jiǎn)單,創(chuàng)建新進(jìn)程需要對(duì)父進(jìn)程進(jìn)行一次復(fù)制。
一個(gè)線程可以控制和操作同級(jí)線程里的其他線程,但是進(jìn)程只能操作子進(jìn)程。
5、交互
同一個(gè)進(jìn)程里的線程之間可以直接訪問。兩個(gè)進(jìn)程想通信必須通過一個(gè)中間代理來(lái)實(shí)現(xiàn)。