筆記:Java實現三個執行緒A B C,BC執行緒執行完再執行A線
阿新 • • 發佈:2018-11-01
final Lock lc = new ReentrantLock();
.. run() {
lc.lock();
...
lc.unlock();
}
可能開啟方式不對吧,沒實現!
改用join() 可以實現(BC與A以單執行緒模式執行),程式碼如下:
package com.w.thread; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class Thread3 implements Runnable { final Lock lock = new ReentrantLock(); private String name; public Thread3(String name) { super(); this.name = name; } @Override public void run() { for (int i = 1; i < 10001; i++) { System.out.println("執行緒" + name + ":" + i); } } public static void main(String[] args) { Thread3 t1 = new Thread3("A"); Thread3 t2 = new Thread3("B"); Thread3 t3 = new Thread3("C"); Thread A = new Thread(t1); Thread B = new Thread(t2); Thread C = new Thread(t3); try { B.start(); B.join(); C.start(); C.join(); A.start(); A.join(); } catch (InterruptedException e) { e.printStackTrace(); } } }
不要在生產環境中使用Thread.join(),和沒用單執行緒差不多。