A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Kevin.Kang 高级黑马   /  2015-8-5 11:26  /  271 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JDK5以后提供了一个新的锁对象Lock,Lock是一个接口,ReentrantLock是Lock的实现类
  1. package com.kxg_11;

  2. import java.util.concurrent.locks.Lock;
  3. import java.util.concurrent.locks.ReentrantLock;
  4. /*
  5. * Lock:
  6. *                 lock():添加锁
  7. *                 unlock():释放锁
  8. */
  9. public class SellTicekt implements Runnable {
  10.         private int ticket = 100;
  11. //        创建Lock接口的实现类ReentrantLock
  12.         private Lock lock = new ReentrantLock();
  13.         @Override
  14.         public void run() {
  15.                 while (true) {
  16.                         try {
  17.                                 lock.lock();
  18.                                 try {
  19.                                         Thread.sleep(100);
  20.                                 } catch (InterruptedException e) {
  21.                                         e.printStackTrace();
  22.                                 }
  23.                                 if (ticket > 0) {
  24.                                         System.out.println(Thread.currentThread().getName()
  25.                                                         + "正在出售第" + (ticket--) + "张票");
  26.                                 }
  27.                         } finally {
  28.                                 lock.unlock();
  29.                         }
  30.                 }
  31.         }
  32. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马