摘要: 发奋忘食,乐以忘优,不知老之将至。———《论语》 前面几篇已经介绍了关于线程安全和同步的相关知识,那么有了这些概念,我们就可以开始着手设计线程安全的类。本文将介绍构建线程安全类的几个方法,并说明他的区别。 我要讲的这几个构建线程安全类的方式是: 另外,在设计线程安全类的过程中,我们需要考虑下面三个基 阅读全文
posted @ 2018-06-07 07:57 seaicelin 阅读(385) 评论(0) 推荐(0)
摘要: 「 天行健,君子以自强不息。地势坤,君子以厚德载物。」———《易经》 volatile 变量,在上一篇文章中已经有简单提及相关概念和用法,这一篇主要对 Volatile 变量的特性进行源码验证。验证它的涉及到的三个特性: 可见性 指令重排序 非原子性 volatile 之可见性验证 上一篇文章中,讲 阅读全文
posted @ 2018-06-05 22:33 seaicelin 阅读(1021) 评论(0) 推荐(0)
摘要: 我们已经知道同步代码块和同步方法可以保证以原子的方式执行,其实,同步还有另外一个重要概念:内存可见性。换句话说,我们不仅希望防止某个线程正在使用对象状态而另一个线程同时在修改状态,而且希望确保当一个线程修改了对象的状态后,其他线程能够看到修改后的状态。 阅读全文
posted @ 2018-06-03 09:40 seaicelin 阅读(314) 评论(0) 推荐(0)
摘要: 本文介绍线程安全性相关的概念,包括原子性,竞态条件,复合操作,内置锁等,通过这些术语的介绍逐步铺开线程安全的相关知识,了解在哪些情况下应当用内置锁,哪些情况下用线程安全类就足够了。同时,说明应过多的同步会引起程序的活跃度和性能问题。 阅读全文
posted @ 2018-05-30 07:53 seaicelin 阅读(242) 评论(0) 推荐(0)
摘要: 并发简史 在早期不包含操作系统的计算机中,程序都是单一的串行程序,从头至尾只能执行一个程序,并且这个程序访问这个计算机的所有资源。然而,随着技术的发展,操作系统出现了。它使得计算机程序有了进程,线程的概念,每次可以运行多个程序,并且不同的程序都在单独的进程中运行。操作系统为各个独立执行的进程分配各种 阅读全文
posted @ 2018-05-21 23:00 seaicelin 阅读(143) 评论(0) 推荐(0)