4、對繼承自Runnable的線程進行鎖機制的使用
package com.lfy.ThreadsSynchronize;import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;public class TicketSellSolution4 implements Runnable {private static int num = 50;//創建一個鎖對象Lock l = new ReentrantLock();@Overridepublic void run() {for(int i = 0 ; i < 50 ;i ++){//獲取鎖 l.lock();try {if(num > 0){Thread.sleep(10);System.out.println(Thread.currentThread().getName()+"賣出一張票,剩余"+(--num)+"張");}} catch (Exception e) {e.printStackTrace();}finally{//釋放鎖 l.unlock();}}}}
?