java多線程按順序執(zhí)行任務 如何控制多線程執(zhí)行順序?
如何控制多線程執(zhí)行順序?線程啟動后,不會立即執(zhí)行,而是等待CPU的資源調(diào)度,CPU調(diào)度的順序由操作系統(tǒng)通過復雜的算法來計算。在啟動線程得到CPU指令后,它將與主線程切換并執(zhí)行run方法。因此,它自然不
如何控制多線程執(zhí)行順序?
線程啟動后,不會立即執(zhí)行,而是等待CPU的資源調(diào)度,CPU調(diào)度的順序由操作系統(tǒng)通過復雜的算法來計算。在啟動線程得到CPU指令后,它將與主線程切換并執(zhí)行run方法。因此,它自然不會按開始順序執(zhí)行,如下圖所示:
如果希望線程按順序執(zhí)行,可以使用以下方法。
方法一:使用join方法
join方法的作用是停止正在執(zhí)行的線程,釋放CPU的控制,讓調(diào)用join的線程立即執(zhí)行,如下圖所示:
方法2:executorservice
到executorservice executors=Executors.newSingleThreadExecutor()創(chuàng)建單線程池,將要執(zhí)行的所有線程任務提交到線程池,如下圖所示: