如下代碼:
class Window4 implements Runnable { private int ticket=100;
//1、先定義一個變量 private ReentrantLock rlock=new ReentrantLock(true); @Override public void run() { while (true){ try {
//2、加鎖 rlock.lock(); if(ticket>0){ try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+":"+ticket); ticket--; }else{ break; } } finally {
//3、鎖釋放
rlock.unlock();
} } } }
代碼中有註釋。