线程同步方法synchronized

synchronized修饰需要控制资源的方法。

public class TestSynchronized {
   public static void main(String[] args) {
       BuyTicket buyTicket = new BuyTicket();
       new Thread(buyTicket,"小红").start();
       new Thread(buyTicket,"小明").start();
​
  }
}
class BuyTicket implements Runnable{
​
   private int ticket=10;
   private boolean flag=true;
​
   @Override
   public synchronized void run() {
       while (flag){
           try {
               Thread.sleep(1000);
          } catch (InterruptedException e) {
               e.printStackTrace();
          }
           if (ticket<=0){
               flag=false;
               break;
          }
           System.out.println(Thread.currentThread().getName()+"买到了第"+ticket--+"票哦");
      }
  }
​
​
}
posted on 2021-03-08 20:52  要给小八赚罐头钱  阅读(51)  评论(0)    收藏  举报