多線(xiàn)程運(yùn)算CPU占用率只有一半?
我認(rèn)為,多線(xiàn)程提高效率是有前提的。
如果只是讓CPU執(zhí)行計(jì)算,就像你說(shuō)得,現(xiàn)在的微機(jī)都是分時(shí)處理,單線(xiàn)程和多線(xiàn)程的效率幾乎一致,甚至單線(xiàn)程還要快一點(diǎn),關(guān)于這個(gè)我是做過(guò)測(cè)試的。
多線(xiàn)程提高效率的情況是,比如需要等待IO或者用戶(hù)響應(yīng)的情況。
舉個(gè)列子,一個(gè)ping的小程序。從網(wǎng)址192.168.1.1到192.168.1.255,循環(huán)ping,假設(shè)每個(gè)網(wǎng)址都ping不通,計(jì)算機(jī)等待3秒超時(shí)。
如果使用單線(xiàn)程,則需要255*3秒時(shí)間。如果使用C#線(xiàn)程池或者4.0的并行計(jì)算,則會(huì)節(jié)約10倍左右的時(shí)間。