- 博客(5)
- 收藏
- 关注
原创 java并发系列(3)——线程协作:wait,notify,join
内容包括:wait 和 notify的使用;wait 和 notify 时线程做了哪些事情;对比了 wait 和 sleep 的异同;对比了 wait 导致的阻塞和 sleep,synchronized 导致的阻塞的异同;分析了 join 的代码实现。
2020-06-26 12:42:23 301
原创 利用wait/notify模拟消息队列
利用 wait/notify 模拟消息队列一个简易版的消息队列模型:这里一共有四种角色:queue:消息队列;Publisher:消息发布者,可以向任何一个队列发布消息;Listener:消息监听者,一个 Listener 同时只能监听一个 queue 的消息;但一个 queue 可同时被多个 Listener 监听;MqServer:消息队列服务器,负责管理所有的队列。首先定义 MqServer,queue 都在 MqServer 里面:package per.lvjc.concur
2020-06-26 12:12:15 384
原创 java并发系列(2)——线程共享,synchronized与volatile
接上一篇《java并发系列(1)——基本概念与Thread API》2.3 线程共享多个线程并发访问共享资源时,有可能产生线程安全问题。线程安全包括三个方面:原子性、可见性、有序性,也可以说是并发三大特性。2.3.1 cpu 缓存模型2.3.1.1 背景cpu 的运算是在一个容量较小但读写速度很快的寄存器上进行的,而数据是存储在计算机物理内存(主存)的。所以 cpu 需要从内存读取数据到寄存器进行运算,然后再把数据更新到内存。随着技术发展,cpu 运算速度飞速提升,而内存访问速度一直没有
2020-06-24 12:58:36 476
原创 java并发系列(1)——基本概念与Thread API
主要内容包括:并发相关基本概念,Java Thread 相关基本 API,及其对线程生命周期的影响。
2020-06-18 21:14:39 266
原创 让Thread#stop方法无法终止你的线程
众所周知,Thread 类有一个 stop 方法,可以用来终止线程。当然,这个方法连同 suspend,resume 方法一起都已经被弃用了。原因是 stop 方法终止线程过于暴力,不管被 stop 的线程在干什么,一旦被 stop 它就得立刻停止执行,然后释放锁,这是非常不安全的。那么,有没有办法,让被 stop 的线程继续执行,并且不释放锁呢?我写了一段代码,各位可以拿去试试:package per.lvjc.concurrent.stop;public class CanNotStopThr
2020-06-16 01:21:01 1356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人