A.提高執(zhí)行效率,減少程序的響應(yīng)時間。因為單線程執(zhí)行的過程只有一個有效的操作序列,如果某個操作很耗時(或等待網(wǎng)絡(luò)響應(yīng)),此時程序就不會響應(yīng)鼠標(biāo)和鍵盤等操作,如果使用多線程,就可以將耗時的線程分配到一個單獨的線程上執(zhí)行,從而使程序具備更好的交互性。
B.與進(jìn)程相比,線程的創(chuàng)建和切換開銷更小。因開啟一個新的進(jìn)程需要分配獨立的地址空間,建立許多數(shù)據(jù)結(jié)構(gòu)來維護(hù)代碼塊等信息,而運行于同一個進(jìn)程內(nèi)的線程共享代碼段、數(shù)據(jù)段、線程的啟動和切換的開銷比進(jìn)程要少很多。同時多線程在數(shù)據(jù)共享方面效率非常高。
C.目前市場上服務(wù)器配置大多數(shù)都是多CPU或多核計算機等,它們本身而言就具有執(zhí)行多線程的能力,如果使用單個線程,就無法重復(fù)利用計算機資源,造成資源浪費。因此在多CPU計算機上使用多線程能提高CPU的利用率。
D.利用多線程能簡化程序程序的結(jié)構(gòu),是程序便于理解和維護(hù)。一個非常復(fù)雜的進(jìn)程可以分成多個線程來執(zhí)行。