java  Lock接口详解及实例代码

 更新时间:2017年01月25日 10:14:46   投稿:lqh  
这篇文章主要介绍了java Lock接口详解及实例代码的相关资料,需要的朋友可以参考下

java  Lock接口

java.util.concurrent.locks

接口Lock

public interface Loce

Loce实现提供了比使用synchronized方法和语句可获得的更广泛的锁定操作


import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
 
public class IntegerDemo {
  public static void main(String[] args) {
    // 创建3个线程对象
    SellTicket st = new SellTicket();
 
    Thread t1 = new Thread(st, "窗口1");
    Thread t2 = new Thread(st, "窗口2");
    Thread t3 = new Thread(st, "窗口3");
 
    // 启动线程
    t1.start();
    t2.start();
    t3.start();
  }
}
 
class SellTicket implements Runnable {
  private int ticket = 100;
  private Lock lock = new ReentrantLock();
 
  public void run() {
    while (true) {
      lock.lock();
 
      if (ticket > 0) {
        try {
          Thread.sleep(100);
        } catch (InterruptedException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
 
        System.out.println(Thread.currentThread().getName() + "正在出售第" + (ticket--) + "张票。");
      }
 
      lock.unlock();
    }
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • java中的AWT事件处理问题

    java中的AWT事件处理问题

    这篇文章主要介绍了java中的AWT事件处理问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • IDEA Ui设计器JFormDesigner 永久激活插件+注册机(亲测一直在用)

    IDEA Ui设计器JFormDesigner 永久激活插件+注册机(亲测一直在用)

    这篇文章主要介绍了IDEA Ui设计器JFormDesigner 永久激活----插件+注册机 自己一直在用的版本和注册机,非常不错,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • YGC前后新生代是否变大分析详解

    YGC前后新生代是否变大分析详解

    要解释这个问题,我们先要弄清楚YGC的过程,parNew是新生代的gc算法,简单来说从gc roots开始扫描对象,当扫到一个只要是属于新生代的对象就将其挪到to space,但是老的对象还不会做释放,直到gc完成之后再看是否释放老的对象
    2022-01-01
  • 一文详解Mybatis-plus的介绍与使用

    一文详解Mybatis-plus的介绍与使用

    Mybatis-Plus 是 MyBatis 的一个增强工具,专门针对于传统MyBatis开发中sql需要手动进行映射配置繁琐缺点的一款框架技术。本文将为大家详细讲讲Mybatis-plus的介绍与使用,感兴趣的可以了解一下
    2022-07-07
  • JMS 之 Active MQ 的消息传输(详解)

    JMS 之 Active MQ 的消息传输(详解)

    下面小编就为大家带来一篇JMS 之 Active MQ 的消息传输(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • springMVC返回复杂的json格式数据方法

    springMVC返回复杂的json格式数据方法

    下面小编就为大家分享一篇springMVC返回复杂的json格式数据方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Java深入浅出说流的使用

    Java深入浅出说流的使用

    这篇文章主要介绍了Java深入浅出说流的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Java MapStruct解了对象映射的毒

    Java MapStruct解了对象映射的毒

    这篇文章主要介绍了MapStruct解了对象映射的毒,对MapStruct感兴趣的同学,可以参考下
    2021-04-04
  • springBoot启动时让方法自动执行的几种实现方式

    springBoot启动时让方法自动执行的几种实现方式

    这篇文章主要介绍了springBoot启动时让方法自动执行的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Spring中依赖注入(DI)几种方式解读

    Spring中依赖注入(DI)几种方式解读

    这篇文章主要介绍了Spring中依赖注入(DI)几种方式解读,构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖,需要的朋友可以参考下
    2024-01-01

最新评论