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