![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 85
鸡蛋卷啊卷
这个作者很懒,什么都没留下…
展开
-
【异步-生产者消费者-Java】-SynchronousQueue-为啥capacity是0
【Java-并发】- SynchronousQueue与使用场景目的简化 线程间单个数据 的交换只能传递 1个 数据take、put会阻塞线程安全特点用于两个线程 交换数据支持 put、get,均为阻塞操作虽说是Queue,但element最多1个(且1个时,必然是生产者线程被阻塞了)1个线程put会被阻塞到 另一线程take,反之亦然代码github demo @Test public void synchronousQueueImplement原创 2020-12-12 21:27:48 · 313 阅读 · 0 评论 -
Thread interrupt, catch中调用interrupt
thread interrupt方法详解,为何在catch中主动调用interrupt方法原创 2017-04-27 08:12:22 · 713 阅读 · 0 评论 -
volatile作用、优缺点、原理
参数书籍:《Java性能优化权威指南》、《Java并发编程实战》结论:(先说结论)线程安全 字段(field、变量、数)层次 语句 (语句包含 字段)层次 volatile作用于变量层次,无法作用语句层次(加锁等确保) 所以volatile保证不了线程安全大白话(2020/01/30补充):CPU存储(寄存器、register、高速缓存),RAM(内存、内存...原创 2018-04-22 11:53:35 · 7821 阅读 · 0 评论 -
为何不推荐Java双重检测加锁(DCL)
########### 20190617更新DCL缺点1. 对象init有了内存地址,object != null,但是初始化还没完全,有属性没有被初始化:object.attribute == null,这样调用object.attribute就null point了。(声明为volatile可以解决)2. 变得复杂(volatile,两次判空),耗时(用了synchronized...原创 2018-04-22 12:49:43 · 2190 阅读 · 0 评论