java多線(xiàn)程按順序執(zhí)行任務(wù) 如何控制多線(xiàn)程執(zhí)行順序?
如何控制多線(xiàn)程執(zhí)行順序?線(xiàn)程啟動(dòng)后,不會(huì)立即執(zhí)行,而是等待CPU的資源調(diào)度,CPU調(diào)度的順序由操作系統(tǒng)通過(guò)復(fù)雜的算法來(lái)計(jì)算。在啟動(dòng)線(xiàn)程得到CPU指令后,它將與主線(xiàn)程切換并執(zhí)行run方法。因此,它自然不
如何控制多線(xiàn)程執(zhí)行順序?
線(xiàn)程啟動(dòng)后,不會(huì)立即執(zhí)行,而是等待CPU的資源調(diào)度,CPU調(diào)度的順序由操作系統(tǒng)通過(guò)復(fù)雜的算法來(lái)計(jì)算。在啟動(dòng)線(xiàn)程得到CPU指令后,它將與主線(xiàn)程切換并執(zhí)行run方法。因此,它自然不會(huì)按開(kāi)始順序執(zhí)行,如下圖所示:
如果希望線(xiàn)程按順序執(zhí)行,可以使用以下方法。
方法一:使用join方法
join方法的作用是停止正在執(zhí)行的線(xiàn)程,釋放CPU的控制,讓調(diào)用join的線(xiàn)程立即執(zhí)行,如下圖所示:
方法2:executorservice
多線(xiàn)程順序輸出有什么意義?
多線(xiàn)程順序輸出的意義在于充分利用CPU的并行處理能力。
例如,在8核CPU下,一個(gè)任務(wù)需要8分鐘才能獨(dú)立、有序地執(zhí)行。多線(xiàn)程技術(shù)可以充分利用8核,并行處理,耗時(shí)僅在1分鐘以上。