摘要: 前言: 对于线程通信,使用synchronized时使用wait、notify和notifyAll来实行线程通信。而使用Lock如何处理线程通信呢?答案就是本片的主角:Condition. 一、Condition Condition,Condition 将 Object 监视器方法(wait、not 阅读全文
posted @ 2019-01-04 15:56 开嘴的板栗 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 为什么条件锁会产生虚假唤醒现象(spurious wakeup)? ​ 在不同的语言,甚至不同的操作系统上,条件锁都会产生虚假唤醒现象。所有语言的条件锁库都推荐用户把wait()放进循环里: ​ 这个一般出现在多线程竞争的时候,when no thread specifically broadcas 阅读全文
posted @ 2019-01-04 14:20 开嘴的板栗 阅读(559) 评论(1) 推荐(1) 编辑
摘要: 根据锁的添加到Java中的时间,Java中的锁,可以分为 “同步锁” 和 “JUC包中的锁” 。 一、同步锁 synchronized关键字 通过 synchronized关键字 来进行同步,实现对竞争资源的互斥访问的锁。 同步锁的原理是, 对于每一个对象,有且仅有一个同步锁 ;不同的线程能共同访问 阅读全文
posted @ 2019-01-04 13:34 开嘴的板栗 阅读(285) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch简介 (1)用于解决什么问题? 在并发编程的场景中,最常见的一个case是某个任务的执行,需要等到多个线程都执行完毕之后才可以进行,CountDownLatch可以很好解决这个问题。 (2)使用说明 同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程 阅读全文
posted @ 2019-01-04 09:21 开嘴的板栗 阅读(180) 评论(0) 推荐(0) 编辑