JAVA 锁(Lock)示例

游戏人间3个月前JAVA820
package com.expgiga.JUC;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

public class TestLock
{
  public static void main(String[] args)
  {
    Ticket ticket = new Ticket();
    new Thread(ticket, "1号窗口").start();
    new Thread(ticket, "2号窗口").start();
    new Thread(ticket, "3号窗口").start();
  }
}

class Ticket implements Runnable 
{
  private int  tick = 100;
  private Lock lock = new ReentrantLock();
  @Override
  public void run() 
  {
    while(true) 
    {
      lock.lock();
      try 
      {
        if (tick > 0)
        {
          Thread.sleep(200);
          System.out.println(Thread.currentThread().getName() + " 完成售票,余票为 " + --tick);
        }
      }
      finally { lock.unlock(); }
    }
  }
}


发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。