- 博客(3)
- 收藏
- 关注
原创 信号量与管程
信号量与管程都是操作系统的并发编程机制,也是现在很多高级语言实现并发的一种底层原理。信号量(Semaphore)信号量机制是由大名鼎鼎的荷兰计算机科学家 Dijkstra 于1965 年提出的操作系统的并发编程模型中,信号量(Semaphore)与锁机制(Mutex)一样都是对底层硬件同步方法的高级抽象信号量的模型信号量模型的组成是这样的:两个成员变量:整型数 count:用于记录共享资源数量等待队列两个基本方法:P() 操作:将 count - 1,若 count <
2020-06-24 20:14:00 780
原创 Java中的等待-通知机制
为什么有等待-通知机制?首先,设想这样一种场景:一个线程的执行需要满足某些条件,当条件不满足时就通过一个循环不断尝试,直到条件满足。这个场景下存在一个明显的缺点,就是线程不断地尝试获取所需的条件,这个循环的过程会白白浪费CPU资源,降低系统性能。等待-通知机制是一种优化策略,其核心思想就是:当线程所需条件不满足时,就阻塞该线程,之后当条件满足时再通知线程,以此提高硬件资源的利用率Java 中的实现在 Java 中实现等待-通知机制,一种经典的做法是使用 synchronized + wait()
2020-06-20 16:41:49 546
原创 关于Java互斥锁
一切从一个例子开始:class SafeCalc { long value = 0L; long get() { return value; } synchronized void addOne() { for (int i = 0; i < 3; i++) { value += 1; } }}现在假设我们启动 5 个写线程执行 addOne(),启动 3 个读线
2020-06-17 18:35:47 3930 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人