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中ListIterator和Iterator的辨析

    详解JAVA中ListIterator和Iterator的辨析

    这篇文章主要为大家详细介绍了JAVAListIterator和Iterator的辨析,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • 理解Java多线程之并发编程

    理解Java多线程之并发编程

    这篇文章主要介绍了理解Java多线程之并发编程的相关资料,需要的朋友可以参考下
    2023-02-02
  • 浅谈HBase在SpringBoot项目里的应用(含HBaseUtil工具类)

    浅谈HBase在SpringBoot项目里的应用(含HBaseUtil工具类)

    这篇文章主要介绍了浅谈HBase在SpringBoot项目里的应用(含HBaseUtil工具类),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Maven配置多仓库无效的解决

    Maven配置多仓库无效的解决

    在项目中使用Maven管理jar包依赖往往会出现很多问题,所以这时候就需要配置Maven多仓库,本文介绍了如何配置以及问题的解决
    2021-05-05
  • Java中的Phaser并发阶段器详解

    Java中的Phaser并发阶段器详解

    这篇文章主要介绍了Java中的Phaser并发阶段器详解,Phaser由JDK1.7提出,是一个复杂强大的同步辅助类,是对同步工具类CountDownLatch和CyclicBarrier的综合升级,能够支持分阶段实现等待的业务场景,需要的朋友可以参考下
    2023-12-12
  • JAVA如何定义构造函数过程解析

    JAVA如何定义构造函数过程解析

    这篇文章主要介绍了JAVA如何定义构造函数过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • nacos如何修改默认的用户名密码

    nacos如何修改默认的用户名密码

    这篇文章主要介绍了nacos如何修改默认的用户名密码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 一文总结Java获取文件后缀名的所有方法

    一文总结Java获取文件后缀名的所有方法

    Java是一种应用广泛的编程语言,可以通过多种方式来实现对文件的操作,如文件名后缀、文件扩展名等,下面这篇文章主要给大家介绍了关于Java获取文件后缀名的所有方法,需要的朋友可以参考下
    2023-05-05
  • mybatis-plus 执行insert(),实体的id自动更新问题

    mybatis-plus 执行insert(),实体的id自动更新问题

    这篇文章主要介绍了mybatis-plus 执行insert(),实体的id自动更新问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java ArrayList使用总结

    Java ArrayList使用总结

    这篇文章主要介绍了Java ArrayList使用总结,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03

最新评论