多線程怎么加速
學(xué)過操作系統(tǒng)的同學(xué)都知道讹躯,線程是現(xiàn)代操作系統(tǒng)底層一種輕量級的多任務(wù)機(jī)制笛厦。一個進(jìn)程空間中可以存在多個線程乌庶,每個線程代表一條控制流,共享全局進(jìn)程空間的變量员萍,又有自己私有的內(nèi)存空間。
多個線程可以同時執(zhí)行拣度。此處的“同時”碎绎,在較早的單核架構(gòu)中表現(xiàn)為“偽并行”,即讓線程以極短的時間間隔交替執(zhí)行抗果,從人的感覺上看它們就像在同時執(zhí)行一樣筋帖。但由于僅有一個運(yùn)算單元,當(dāng)線程皆執(zhí)行計算密集型任務(wù)時冤馏,多線程可能會出現(xiàn) 1 + 1 > 2 的反效果日麸。但是當(dāng)任務(wù)是IO密集型時,多線程就可以體現(xiàn)出極大的優(yōu)勢宿接。IO大部分耗時在讀取數(shù)據(jù)流赘淮。(對于此處有疑問可以查看《現(xiàn)代操作系統(tǒng)》)
而“真正的并行”只能在多核架構(gòu)上實(shí)現(xiàn)。對于計算密集型任務(wù)睦霎,巧妙地使用多線程或多進(jìn)程將其分配至多個 CPU 上梢卸,通常可以成倍地縮短運(yùn)算時間副女。