随笔分类 -  JAVA多线程

非阻塞同步算法实战(四)- 计数器定时持久化
摘要:循序渐进地优化计数器(定时持久化及可回收),从原生锁到wait-free的非阻塞算法 阅读全文
posted @ 2020-02-21 13:16 trytocatch 阅读(412) 评论(0) 推荐(0) 编辑
java8中CAS的增强
摘要:在java8中,CAS得到了大副的增强,我们又多了一个使用非阻塞算法的理由。 阅读全文
posted @ 2015-05-24 20:43 trytocatch 阅读(4533) 评论(1) 推荐(0) 编辑
您还有心跳吗?超时机制分析(java)
摘要:注:本人是原作者,首发于并发编程网(您还有心跳吗?超时机制分析),此文结合那里的留言作了一些修改。问题描述在C/S模式中,有时我们会长时间保持一个连接,以避免频繁地建立连接,但同时,一般会有一个超时时间,在这个时间内没发起任何请求的连接会被断开,以减少负载,节约资源。并且该机制一般都是在服务端实现,因为client强制关闭或意外断开连接,server端在此刻是感知不到的,如果放到client端实现,在上述情况下,该超时机制就失效了。本来这问题很普通,不太值得一提,但最近在项目中看到了该机制的一种糟糕的实现,故在此深入分析一下。问题分析及解决方案服务端一般会保持很多个连接,所以,一般是创建一个定 阅读全文
posted @ 2014-02-17 00:06 trytocatch 阅读(5837) 评论(2) 推荐(1) 编辑
非阻塞同步算法实战(三)-LatestResultsProvider
摘要:本人是本文的作者,首发于ifeve(非阻塞同步算法实战(三)-LatestResultsProvider) 前言 阅读本文前,需要读者对happens-before比较熟悉,了解非阻塞同步的一些基本概念。本文主要为happens-before法则的灵活运用,和一些解决问题的小技巧,分析问题的方式。 阅读全文
posted @ 2013-09-16 16:57 trytocatch 阅读(771) 评论(0) 推荐(0) 编辑
非阻塞同步算法实战(二)-BoundlessCyclicBarrier
摘要:本人是本文的作者,首发于ifeve(非阻塞同步算法实战(二)-BoundlessCyclicBarrier) 前言 相比上一 篇而言,本文不需要太多的准备知识,但技巧性更强一些。因为分析、设计的过程比较复杂繁琐,也限于篇幅,所以,主要展示如何解决这些需求,和讲解代码。另外,所讲的内容也是后一篇实战中 阅读全文
posted @ 2013-09-16 07:04 trytocatch 阅读(1198) 评论(1) 推荐(2) 编辑
非阻塞同步算法实战(一)
摘要:关于非阻塞算法的资料已经很多了,但真正能用它解决实际问题的人应该还比较少,我在网上也看到有些人对CAS存在误用,故写出这一个实战系列,希望能对读者运用非阻塞算法有些帮助。 阅读全文
posted @ 2013-09-15 20:27 trytocatch 阅读(1614) 评论(0) 推荐(1) 编辑
一个java volatile测试揭开的陷阱
摘要:玩java多线程的,大多都知道volatile:它能保证变量的可见性,其它线程能看到其最新值,但不能用于实现线程安全的变量自增;再深入点的可能知道,它会限制指令重排序,volatile操作前的操作(包括普通变量的读写)不能重排到它之后,反之亦然。基于上面的认识,我设计了下面的测试public class TestVolatile { private volatile int n1=0;//volatile private int n2=0; public static void main(String[] a) { new TestVolatile().t... 阅读全文
posted @ 2013-03-21 23:08 trytocatch 阅读(2203) 评论(0) 推荐(1) 编辑
java volatile的一个验证反例
摘要:java volatile的一个验证反例 阅读全文
posted @ 2013-01-07 20:22 trytocatch 阅读(2972) 评论(4) 推荐(2) 编辑