java并发多线程显式锁Condition条件简介分析与监视器 多线程下篇(四)
java并发多线程显式锁Condition条件简介分析与监视器 多线程下篇(四)
等待
await
- 其他某个线程调用此 Condition 的 signal() 方法,并且碰巧唤醒的是该线程
- 其他某个线程调用此 Condition 的 signalAll() 方法;
- 其他某个线程中断当前线程
- “虚假唤醒”
awaitUninterruptibly
- 其他某个线程调用此 Condition 的 signal() 方法,并且碰巧唤醒的是该线程
- 其他某个线程调用此 Condition 的 signalAll() 方法;
- 其他某个线程中断当前线程
- “虚假唤醒”
awaitNanos
- 其他某个线程调用此 Condition 的 signal() 方法,并且碰巧唤醒的是该线程
- 其他某个线程调用此 Condition 的 signalAll() 方法;
- 其他某个线程中断当前线程
- “虚假唤醒”
- 已超过指定的等待时间(新增)
boolean aMethod(long timeout, TimeUnit unit) { long nanos = unit.toNanos(timeout); lock.lock(); try { while (!conditionBeingWaitedFor()) { if (nanos <= 0L) return false; nanos = theCondition.awaitNanos(nanos); } // ... } finally { lock.unlock(); } }
await(long time, TimeUnit unit)
awaitUntil
boolean aMethod(Date deadline) { boolean stillWaiting = true; lock.lock(); try { while (!conditionBeingWaitedFor()) { if (!stillWaiting) return false; stillWaiting = theCondition.awaitUntil(deadline); } // ... } finally { lock.unlock(); } }
唤醒
总结
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《深入理解Java虚拟机》-----Java内存区域与内存溢出异常——Java高级开发必须懂的
《深入理解Java虚拟机》-----Java内存区域与内存溢出异常——Java高级开发必须懂的 正文 回到顶部 2.1 概述 对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又是执行最基础工作的劳动人民——拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。 对于Java程序员来说,不需要在为每一个new操作去写配对的delete/free,不容易出现内容泄漏和内存溢出错误,看起来由JVM管理内存一切都很美好。不过,也正是因为Java程序员把内存控制的权力交给了JVM,一旦出现泄漏和溢出,如果不了解JVM是怎样使用内存的,那排查错误将会是一件非常困难的事情。 回到顶部 2.2 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域 2.2.1 ...
- 下一篇
浅谈Unity的资源管理部分
前言 Unity资源管理部分的功能很强大,会帮你做好很多东西,但是由于Unity设计目标是超级通用性,所以很多时候你要更多去了解其原理,才能保证使用的正确性和高效性,否则很容易掉坑里。 这里我结合以前看过的Unity4.2的源代码和部分文档,浅谈下Unity的资源管理部分的一些东西。常言道:“庖丁解牛,恢恢乎”,个人认为源代码是唯一没有二义性的文档。 3种资源读取方式 Resources:支持编辑器模式和发布模式 AssetDatabase :仅仅支持编辑器模式 AssetBundle: 支持编辑器模式和发布模式 接下来,让我们看下这3种资源获取方式的优缺点。 Resources 你可以认为,unity给你提供了一个特定的包Resources。在编辑器模式下,它以文件夹的形式存在,你可以随意放置里边的散文件。在打包过程中,unity则自动帮你把Resources文件夹的所有东西打包。优点开发时绝对的方便。缺点Resources文件夹下的任何一点点修改,都会导致Resources包的重打。 AssetDatabase优点AssetDatabase 在编辑器模式下超级方便。缺点在正式发布版...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- 设置Eclipse缩进为4个空格,增强代码规范
- MySQL8.0.19开启GTID主从同步CentOS8