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