多线程_DK5之后的Lock锁的概述和使用
来源:互联网 发布:mysql having count 编辑:程序博客网 时间:2024/06/05 15:37
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();}}
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();try {Thread.sleep(100);} catch (InterruptedException e) {System.out.println("线程中断");}if (tickets > 0) {System.out.println(Thread.currentThread().getName()+ "正在出售第张" + (tickets--) + "电影票");}} finally {// 释放锁lock.unlock();}}}}
0 0
- 多线程_DK5之后的Lock锁的概述和使用
- 多线程-JDK5之后的Lock锁的概述和使用
- JDK1.5之后怎么玩转多线程(Lock和Condition的使用)
- 多线程-lock 锁的使用
- Lock的使用 java多线程
- Java多线程--Lock的使用
- java多线程Lock的使用。
- 多线程_定时器的概述和使用
- 多线程(定时器的概述和使用)
- 多线程-线程组的概述和使用
- 多线程-线程池的概述和使用
- 多线程-定时器的概述和使用
- Java多线程之~~~Lock接口和ReentrantLock的使用
- Java多线程-Lock锁的使用,以及生产者和消费者的实现
- C# 多线程编程之锁的使用【互斥锁(lock)和读写锁(ReaderWriterLock )】
- C# 多线程编程之锁的使用【互斥锁(lock)和读写锁(ReadWriteLock)】
- Java多线程编程4--Lock的使用--公平锁和非公平锁
- JAVA多线程-Lock的使用(四)-读写锁ReentrantReadWriteLock
- swift的闭包传值
- 蓝桥杯 拦截导弹
- 李松林 超星尔雅形势与政策2017版答案课后答案
- java中stringBuilder的用法
- altera小实验——LCD1602显示
- 多线程_DK5之后的Lock锁的概述和使用
- JavaScript入门指南---(一)、认识JavaScript
- L3-003. 社交集群----并查集
- 奇怪的比赛
- 二叉树的层次遍历
- ACM10题
- hashtable把自己的类当做主键
- 微博 第三方登录
- 浅析=======Struts2之==========valueStack