Java并发编程实战1,2章

1. 促进进程和线程出现的原因,是要解决以下问题:

2. 进程: 操作系统为各个独立执行的进程分配各种资源,包括内存,文件句柄以及安全证书等。进程之间可以通过一些粗粒度的通信机制来交换数据,包括:套接字,网站空间,信号处理器,共享内      存,信号量以及文件等。

3. 线程:线程允许在同一个进程中同时存在多个程序控制流。线程会共享进程范围内的资源,例如内存句柄和文件句柄,但每个线程都有各自的程序计数器,栈以及局部变量等。线程也被称为    轻量级的进程,在大多数现代操作系统中,都是以线程为基本的调度单位。

4. 线程的优势

5.线程带来的风险

6.解决多个线程访问一个可变的状态变量导致出现错误的三种方式

7.线程安全性

当多个线程访问某个类时,不管运行环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,网站空间,那么就称这个类是线程安全的。其中正确性的含义是,某个类的行为与其规范完全一致。在良好的规范中通常会定义各种不变性条件来约束对象的状态,以及定义各种后验条件来描述对象操作的结果。

8.竞态条件

当某个计算的正确性取决于多个线程的交替执行时序时,那么就会发生竞态条件。

“先检查后执行”是一种常见的竞态条件,它的本质是基于一种可能失效的观察结果来做出判断或者执行某个计算。下面的代码LazyInitRace中就包含一个竞态条件,网站空间,它可能会破坏这个类的正确性。

public class LazyInitRace {private ExpensiveObject instance = null;public ExpensiveObject getInstance() {if (instance == null) {instance = new ExpensiveObject();}return instance;}} 是不是因为心痛的麻木了,我才笑得最美丽。

Java并发编程实战1,2章

相关文章:

你感兴趣的文章:

标签云: