线程锁lock

package com.peanutist.day10;

import com.sun.org.apache.bcel.internal.generic.NEW;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

public class TestLock {
   public static void main(String[] args) {
       BuyTicketAgain buyTicketAgain = new BuyTicketAgain();
       new Thread(buyTicketAgain).start();
       new Thread(buyTicketAgain).start();
       new Thread(buyTicketAgain).start();
  }
}
class BuyTicketAgain implements Runnable{

   int ticket =10;
   //创建一个锁
   private final ReentrantLock lock = new ReentrantLock();
   @Override
   public void run() {
       while (true){
           try {
               lock.lock();//加锁
               if (ticket>0){
                   System.out.println("卖了第"+ticket+"张票");
                   ticket--;
              }else {
                   break;
              }
          }finally {
               lock.unlock();//解锁
          }
      }
  }
}
posted on 2021-03-08 23:48  要给小八赚罐头钱  阅读(81)  评论(0)    收藏  举报