黑马程序员——Java多线程线程间通信之Lock的应用
来源:互联网 发布:php 获取端口号 编辑:程序博客网 时间:2024/04/28 02:50
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
Lock锁的应用
Java的线程间通信就是多个线程在操作同一资源,但操作的动作不同。譬如有一个商店,我们可以去里面买东西,但同时商店也在不断的进货才能保证有东西来卖给我们,商店就相当于要操作的资源,商店卖东西和进货就相当于两个不同的操作。
Java多线程间有等待唤醒机制,wait(),notify(),notifyAll(),分别是等待,唤醒,唤醒所有,他们都使用在同步中,因为要对持有监视器的线程进行操作,所以在使用同步中,因为只有同步才具有锁。wait(),释放执行权,释放锁;notify(),释放执行权,不释放锁。
JDK1.5以后将同步和锁封装成了对象,将操作锁的隐式方法变成了显示操作
Lock接口代替了同步代码块或同步函数,将同步的隐式锁操作变成了显示操作,同时为了更灵活的应用,可以对一个锁加上多组监视器,原来在Sychronized中只有一组(wait,notify,notifyAll)方法
lock()方法获取锁,unlock()方法释放锁,释放的动作要放在finally中,因为必须要完成释放的动作
Condition接口代替了Object中的wait(),notify(),notifyAll()三个方法,并提供了await(),signal(),signalAll()方法,将这些监视器的方法进行了单独的封装,变成了Condition监视器对象,可以和任意锁进行组合。
下面展示的是在Java API文档中给出的演示Condition监视器的基础上改进的程序代码,使输出结果更直观
下面是其输出结果的部分截图,可以看到存和取的一致性
- 黑马程序员——Java多线程线程间通信之Lock的应用
- 黑马程序员——多线程之线程间的通信
- 黑马程序员——多线程之线程间的通信
- 黑马程序员-多线程--线程间的通信
- 黑马程序员——多线程6:线程间通信
- 黑马程序员——多线程(线程间通信)
- 黑马程序员——Java多线程—线程互斥—Lock
- 黑马程序员——Java语言基础——04.多线程(2)线程间通信
- 黑马程序员:JAVA线程间的通信
- 黑马程序员——Java多线程之创建线程
- 黑马程序员——Java多线程之线程安全问题
- JAVA多线程—Lock&Condition实现线程同步通信
- 黑马程序员—多线程线程间的通信与同步新特性
- 黑马程序员:Java基础——多线程之间的通信
- 黑马程序员---多线程:线程间通信
- 黑马程序员---多线程、线程间通信
- 黑马程序员-day12-多线程(线程间通信)
- 黑马程序员-day12多线程-线程间通信
- rrdtool 安装
- hihoCoder #1051 补提交卡
- Linux下进程绑定多CPU运行
- nyoj--88汉诺塔(一)(快速幂)
- HDU 5301 Building (找规律)
- 黑马程序员——Java多线程线程间通信之Lock的应用
- 面向对象
- 简单的新闻列表鼠标移入背景变色功能
- 图像处理------快速均值模糊(Box Blur)
- HDU 5305 Friends(2015多校第二场 dfs + 剪枝)
- MySQL数据类型总结
- iOS多线程与网络开发之NSOperation
- Editplus 当前行高亮技巧
- MongoDB 安全