多线程-JDK5之后的Lock锁的概述和使用
来源:互联网 发布:5g网络相关的股票 编辑:程序博客网 时间:2024/05/16 15:08
package cn.itcast_01;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class SellTicket implements Runnable {// 定义票private int tickets = 100;// 定义锁对象private Lock lock = new ReentrantLock();@Overridepublic void run() {while (true) {try {// 加锁lock.lock();if (tickets > 0) {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "正在出售第" + (tickets--) + "张票");}} finally {// 释放锁lock.unlock();}}}}
package cn.itcast_01;/* * 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁, * 为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock。 * * Lock: * void lock(): 获取锁。 * void unlock():释放锁。 * ReentrantLock是Lock的实现类. */public class SellTicketDemo {public static void main(String[] args) {// 创建资源对象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();}}
阅读全文
0 0
- 多线程-JDK5之后的Lock锁的概述和使用
- 多线程_DK5之后的Lock锁的概述和使用
- JDK1.5之后怎么玩转多线程(Lock和Condition的使用)
- 多线程-lock 锁的使用
- Lock的使用 java多线程
- Java多线程--Lock的使用
- java多线程Lock的使用。
- 多线程_定时器的概述和使用
- 多线程(定时器的概述和使用)
- 多线程-线程组的概述和使用
- 多线程-线程池的概述和使用
- 多线程-定时器的概述和使用
- JDK5的ProcessBuilder介绍和使用实例
- JDK5的ProcessBuilder介绍和使用实例
- jdk5的多线程实现例子
- Java多线程之~~~Lock接口和ReentrantLock的使用
- Java多线程-Lock锁的使用,以及生产者和消费者的实现
- C# 多线程编程之锁的使用【互斥锁(lock)和读写锁(ReaderWriterLock )】
- 算法程序-两个字符串是否是由颠倒字母组成
- 理解单例模式(C++)
- 图像处理之特征提取:HOG特征简单梳理
- 线程和进程的区别,一篇文章足矣
- 路由器相关配置详解
- 多线程-JDK5之后的Lock锁的概述和使用
- 【第一篇】SAP HANA XS使用JavaScript数据交互详解
- Android Studio左边栏不显示Android选项如何解决
- 微信小程序进阶篇
- 约瑟夫问题——循环链表C++
- qwb has a lot of Coins 【Nim博弈】
- (0050)iOS开发之钥匙串存储
- 解决jsp跳转controller的链接会丢失项目名称的问题
- 简单的模拟——铺地毯(洛谷)