线程同步方法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  要给小八赚罐头钱  阅读(31)  评论(0)    收藏  举报