線程讓步—yield()
線程讓步Thread.yield():當前線程已經把重要的部分執行完畢,此時可以切換線程。
class MyThread implements Runnable { public void run() { int i = 0; while(i < 6) { System.out.println(Thread.currentThread() + " a = " + i); i++; Thread.yield(); } } } public class Demo1 { public static void main(String[] args) throws Exception { Thread t1 = new Thread(new MyThread(),"t1"); Thread t2 = new Thread(new MyThread(),"t2"); t1.start(); t2.start(); } }
輸出:
Thread[t1,5,main] a = 0 Thread[t2,5,main] a = 0 Thread[t1,5,main] a = 1 Thread[t2,5,main] a = 1 Thread[t1,5,main] a = 2 Thread[t2,5,main] a = 2 Thread[t2,5,main] a = 3 Thread[t2,5,main] a = 4 Thread[t1,5,main] a = 3 Thread[t1,5,main] a = 4 Thread[t2,5,main] a = 5 Thread[t1,5,main] a = 5
再次強調不可以依賴線程的順序,線程的調度是非確定的。

浙公網安備 33010602011771號