java中条件等待

虽然可以使用object的wait、notify,也仍然是很多人的选择;但是不便于把一组相关联的条件封装在一起。

用Lock和Condition则可以实现.

示例代码

Lock relaLock = new ReentrantLock();

Condition relaCondition1 = relaLock.newCondition();

Condition relaCondition2 = relaLock.newCondition();

Thread thread1 = new Thread(() -> {

long i = 0;

while (i++ < Long.MAX_VALUE) {

if (i % 100000000 != 0) {

continue;

}

System.out.println(“thread1 i:” + (i / 100000000));

if (i / 100000000 < 10) {//not wait condition

continue;

}

try {

relaLock.lock();

relaCondition1.await();

i=0;

} catch (InterruptedException ex) {

System.out.println(“thread flag:” + Thread.currentThread().isInterrupted());

} finally {

relaLock.unlock();

}

}

});

thread1.start();

Thread.sleep(10000L);

try {

relaLock.lock();

System.out.println(“relaCondition1 signal”);

relaCondition1.signalAll();

}finally {

relaLock.unlock();

}

thread1.join();

输出

thread1 i:1

thread1 i:2

thread1 i:3

thread1 i:4

thread1 i:5

thread1 i:6

thread1 i:7

thread1 i:8

thread1 i:9

thread1 i:10

relaCondition1 signal

thread1 i:1

thread1 i:2

thread1 i:3

thread1 i:4

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月30日
下一篇 2022年6月30日

相关推荐

  • 公积金不能贷款了还能提取吗 只要满足条件就可以

    公积金有很多作用,大家可以用来贷款买房,同时也可以提取出来。申请公积金贷款要满足很多条件,很多人都申请失败,要是公积金不能贷款了还能提取吗?其实,只要满足条件,就可以提取公积金。 …

    2022年10月14日
  • 姚洋:同意取消预售制,房企的融资需求也需要被认真对待

    【文/观察者网专栏作者 姚洋】 7月10日以来,全国多地停工楼盘出现了“强制停贷”的现象。这一现象也将“商品房预售制度”这个过去多年来备受争议的话题重新推到了公众面前。 1994年…

    2022年8月3日
  • 推荐一款 Python 神器,不写一行代码,就可以调用 Matplotlib 绘图

    介绍一款新的绘图神器:sviewgui。 sviewgui介绍 sviewgui是一个基于 PyQt 的 GUI,用于 csv 文件或 Pandas 的 DataFrame 的数据…

    2022年6月27日
  • 第五届全球跨境电商节,蚂蚁雄兵助力跨境物流行业合规化建设

    2022年6月19日,第5届全球跨境电商节展会于深圳市国际跨境电商贸易博览会圆满落幕!深圳市蚂蚁雄兵跨境物流科技有限公司受邀参加展会,展示了为跨境物流行业打造标准化、数字化解决方案…

    2022年6月21日
  • 4s店贷款买车有不通过的吗 也会存在被拒情况

    很多消费者认为4s店售后服务可以得到保证,因此不少用户到4s店贷款买车,而且反映4s办的车贷通过率很高,那么4s店贷款买车有不通过的吗?下面给大家分析解答。 买车4s店可以贷款,但…

    2022年9月26日
  • 动态数组示例

    之前向大家展示过利用静态数组提取特定行内容的例子,现例举利用动态数组进行提取特定行的例子,但该方法相对较难理解,大家感兴趣可以看看。 例如上图,现需要提取A列中内容为“d”的整行内…

    2022年6月23日
  • 特殊工种55岁退休,到55岁没到10年的特殊工种的条件怎么办?

    感谢邀请,更感谢楼主的提问。 楼主你好,特殊工种,55岁就可以办理退休了。但是自己到了55岁以后,如果还没有达到10年的特殊工种的条件,该怎么办呢?首先我们都知道这个特殊工种,确实…

    2022年4月1日
  • Flask博客实战 – 实现登录注册功能

    上一节我们已经创建了一个用户应用,并创建了用户模型,那么我们这节就开始实现一个简单的用户登录注册功能! 登录注册功能Flask有一个非常优秀的扩展Flask-login,我们可以选…

    2022年6月21日
  • 如何写出同事看不懂的Java代码?

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 哈喽大家好啊,我是没更新就是在家忙着带娃的Hydra。 前几天,正巧赶上组里代码review,一下午下来,感觉整个人都血压拉…

    2022年6月22日
  • 失去伴侣的七八十的高龄老年人剩下的日子该怎样走下去?

    可根据个人健康状况从以下几项中选择: 1.与儿女在一起生活。 2.请个保姆照顾你。 3.若有经济能力就去养老院也很好。 4.若身体健康仍可找个伴共同生活。著名演员黄宗英一生结四次婚…

    2022年4月13日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息