自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除