-
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
-
GitBook-04-gitbook-cli 用法介绍
实战笔记
node
>node -v
v20.10.0
安装 gitbook-cli
npm install -g gitbook-cli
版本验证:
$ gitbook -V
CLI version: 2.3.2
Installing GitBook 3.2.3
C:\Users\Administrator\AppData\Roaming\npm\node_modul...
2019-01-17 01:34:35 |
Git
-
GitBook-03-gitbook 快速开始
是什么?
GitBook 文档
创建并发布用户喜爱的精美文档
GitBook 提供您所需的全套工具,可帮助您从产品指南到API参考文档📚等各类文档的创建。
我们的使命
GitBook 致力于为用户提供用户友好且支持协作的解决方案,用于创建、编辑和共享产品及API文档。
快速上手
几分钟内快速上手 GitBook 并发布首个文档站点
🚀 开始使用
前提条件
要发布文档,您需要拥...
2019-01-17 01:34:35 |
Git