java中的Semaphore
import java.util.concurrent.Semaphore;public class SubThread extends Thread{private Semaphore semaphore; public SubThread(Semaphore semaphore){ this.semaphore=semaphore; } public Semaphore getSemaphore() { return semaphore; } @Overridepublic void run() {// TODO Auto-generated method stubint i = 0;while( i < 100){i++;System.out.println("No."+i+" Sub thread11111111 is running!");try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}semaphore.release();}}
?
该线程的利用方法如下:
?
public static void main(String[] args) { try { SubThread subThread = new SubThread(new Semaphore(0)); SubThread2 subThread2 = new SubThread2(); SubThread3 subThread3 = new SubThread3(); subThread.start(); subThread.getSemaphore().acquire(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Main thread is running!"); }
?
?该线程会执行完再执行接下来的代码。
?