个人简介

Echo Blog


江湖无名 安心练剑
  • JCIP-07-java 从零实现 CopyOnWriteHashMap
    COW 的思想 思想的通用性 CopyOnWriteArrayList 和 CopyOnWriteArraySet 这种读写分离的思想是通用的。 今天就让我们用这种思想实现一个简单的工具:CopyOnWriteHashMap。 实践出真知 这个工具包都出来几十年了,还是用的人很少。 要学以致用,站在巨人的肩膀上, 自己实现一个 copyOnWriteMap 类定义 publ...
    2019-01-18 03:21:15 | Concurrency
  • JCIP-06-同步容器类
    问题 为什么需要同步容器类? 同步容器类的优点和缺点? 对我们设计的启发 同步容器类 java 中的同步容器 在Java中,同步容器主要包括2类: 1)Vector、Stack、HashTable 2)Collections类中提供的静态工厂方法创建的类 Vector实现了List接口,Vector实际上就是一个数...
    2019-01-18 03:21:15 | Concurrency
  • JCIP-05-对象组合
    问题 如何保证一个类是线程安全的?怎么验证? 线程安全的类可以成为组件,更加方便的创建线程安全的类吗? 线程安全的类有哪些条件 在设计线程安全类的过程中,需要包含以下三个基本要素: 1、找出构成对象状态的所有变量 2、找出约束状态变量的不变性条件 3、建立对象状态的并发访问管理策略 ps: 一言以蔽之,让所有变量都被对象并发管理。 ...
    2019-01-18 03:21:15 | Concurrency
  • JCIP-04-可见性,发布与溢出,线程安全对象的构建
    1 可见性 说到底并发还是离不开 JMM 的原理。可以看下我以前整理的 JMM 主内存和工作内存 以及后面的可见性,原子性,有序性。 1.1 内存模型 主内存:所有线程都可以访问 本地内存:每个线程私有的内存 java 的所有变量都存储在主内存中 每个线程有自己独的工作内存,保存了该线程使用到的变量副本,是对主内存中变量的一份拷贝 ...
    2019-01-18 03:21:15 | Concurrency
  • JCIP-03-线程安全
    1. 线程安全性 1.1 概念 当多个线程访问某个类时,不管运行时环境采用何种调度方式 或者这些线程如何交替执行,并且在主调代码中不需要任何额外的同步或者协同,这个类都能表现正确的行为,那么称这个类时线程安全的。 1.2 解决方案 多个线程访问可变的变量,导致其值不正确。 修复的方式可以从下面的几个方面入手: 不在线程之间共享该变量 ThreadLocal +...
    2019-01-18 03:21:15 | Concurrency
  • JCIP-02-基本概念介绍
    1. 进程和线程 参见 进程与线程的一个简单解释 参考资料 进程与线程的一个简单解释 1. 进程和线程 参考资料
    2019-01-18 03:21:15 | Concurrency
  • JCIP-01-并发历史
    1.并发的发展历史 其实,在早期计算机并没有包含操作系统,这个时候,这个计算机只跑一个程序,这个程序独享计算机的所有资源,这个时候不存在什么并发问题,但是对计算机的资源来说,确实是一种浪费。 于是,操作系统出现了,操作系统改变了这种现状,让计算机可以运行多个程序,并且不同的程序占用独立的计算机资源,如内存,CPU等。 操作系统的出现,主要有以下几点原因: 1,资源利用率:可以在其他程...
    2019-01-18 03:21:15 | Concurrency
  • JCIP-00-并发概览
    本系列学习目的 提升对于 java 多线程的理解,要学会横向对比学习,多看些文章。 目前大部分的文章都是止步于创建和常见的类,本系列重在实践,参考书籍《java 并发编程实战》《Java并发编程的艺术》 后续原理参考《深入理解并行编程》。 对于 java 多线程的基础知识,参考 Java Thread 小结 经典书籍《图解 Java 多线程设计模式》 系列学习笔记。 对于 jvm...
    2019-01-18 03:05:31 | Concurrency