并发编程
liao_hb
这个作者很懒,什么都没留下…
展开
-
thread in android ndk
android 高版本加入了c++2.0,和2.0+的标准库的一些东西,例如:std::thread,当然低版本使用还是Thread,不过他们都封装了pthread。我在9.0的Thread源码中发现了如下一段话:39// DO NOT USE: please use std::thread4041class Thread : virtual public RefBase42{。。...原创 2020-05-09 15:26:40 · 1300 阅读 · 0 评论 -
进程间同步
/*****************************************************************************/202203/*204 * Simple mutex class. The implementation is system-dependent.205 *206 * The mutex must be unlocked by ...原创 2020-04-19 08:45:21 · 188 阅读 · 0 评论 -
双重检测单例的正确写法
目录问题根源解决方案不允许2和3重排序使用同步监视器允许2和3重排序,但不允许其他线程“看到”这个重排序问题根源public class DoubleCheckedLocking { // 1private static Instance instance; // 2public static Instance getInstance() { // 3if (ins...原创 2020-03-25 17:05:26 · 391 阅读 · 0 评论 -
java中的Volatile
目录Volatilehappens-before你的打赏是我奋笔疾书的动力!Volatile 掌握好Volatile的概念是理解Doug Lea的AQS的前提,如果你学习AQS的时候,不想一脸茫然和胸塞虚竹的话,还是先来看一下JMM(java内存模型)对volatile的写和读的内存语义的描述。 volatile写和锁的释放有相同的内存语义...原创 2019-02-19 19:05:21 · 150 阅读 · 0 评论 -
michael&scott算法
目录1 介绍2 算法3 正确性4 进一步实现你的打赏是我奋笔疾书的动力!1 介绍 回顾以往研究者的各种blocking算法、non-blocking算法、lock-free算法,它们要么基于并发的FIFO队列,要么基于单向循环链表,要么基于compare_and_swap原语,甚至基于double_compare_and_swap原语。然而,简单...原创 2019-02-28 19:45:46 · 1697 阅读 · 0 评论 -
Happens-Before
目录Happens-Before 关系Ahappens-beforeB 并不意味着 A happening before BA happening before B 并不意味着 Ahappens-beforeBHappens-Before 关系Happens-before是一个现代计算机科学术语,它有助于描述C ++ 11,Java,Go甚至LLVM背后的软件内存模型。...翻译 2019-02-27 18:36:46 · 183 阅读 · 0 评论 -
java并发编程实践笔记五(避免活跃度危险)
目录死锁锁顺序死锁动态的锁顺序死锁协作对象间的死锁开放调用资源死锁避免和诊断死锁使用定时的锁通过线程转储分析死锁其他活跃度危险饥饿活锁有两类线程的活跃度危险:一,锁顺序死锁:为保证安全性而不加考虑地滥用锁导致;二,资源死锁,例如我们使用线程池和信号量来约束资源的使用,在不当的使用上导致。死锁 当线程A占有锁L时,想获得锁M...原创 2018-10-30 16:44:40 · 226 阅读 · 0 评论 -
java并发编程实践笔记二
目录同步容器并发容器阻塞和中断同步工具类构建高效,可伸缩的高速缓存同步容器Vector,Hashtable,Collections.synchronizedXXX方法产生的类,都是同步容器类,他们是线程安全的,但是关于他们的复合操作,需要使用客户端加锁进行保护。例如下复合操作:/** * UnsafeVectorHelpers * <p/> * ...原创 2018-09-20 21:28:40 · 219 阅读 · 0 评论 -
java并发编程实践笔记一
目录不可变对象JMM中final域的内存语义实例限制委托线程安全向线程安全类添加功能不可变对象满足不可变对象的有三点:1.它的状态(对象关联的成员属性)不能在构造后被修改,除构造方法外没有提供修改状态的代码途径。2.所有域都是final的。3.它被正确地创建,即:构造期间没有发生过this引用的逸出。下面的讲解摘自外网:http://jeremymans...原创 2018-09-20 21:16:40 · 384 阅读 · 0 评论 -
java并发编程实践笔记四
目录任务与执行策略间的隐形耦合Executor单线程策略中的死锁线程池大小的设置ThreadPoolExecutor的配置饱和策略控制任务的提交速率使用线程工厂(ThreadFactory)创建线程可以做一些工作扩展ThreadPoolExecutor(日志和每任务计时的例子)递归算法的并行化GUI服务为什么是单线程的你的打赏是我奋笔疾书的动力!...原创 2018-09-25 16:26:10 · 171 阅读 · 0 评论 -
java并发编程实践笔记三
目录任务和线程任务处理框架(Executor)用Executor框架实现 “每任务每线程”和顺序执行这2种调度策略的服务器执行策略Executor中的线程池Executor中任务的生命周期管理延迟任务与周期任务-ScheduledExecutorService找出可利用的并行性-HTML渲染器处理线程的非正常结束线程泄漏线程未捕获的异常关闭JVM...原创 2018-09-25 16:16:17 · 572 阅读 · 0 评论