Java并发编程实战 Chapt1 简介

2017-05-16  本文已影响0人  z锋

要想充分发挥多处理器系统的强大计算能力,最简单的方式就是使用线程。

1.1 并发简史

不包含操作系统
-> 操作系统的出现

串行编程模型的优势在于其直观性和简单性
在同一个程序中的多个线程可以被同时调度到多个CPU上运行

1.2 线程的优势

线程能够将大部分的异步工作流转换成串行工作流

1.2.1 发挥多处理器的强大能力

通过提高时钟频率来提升性能已变得越来越困难 -> 在单个芯片上放置多个处理器核
设计正确,多线程程序:

1.2.2 建模的简单性

线程可以形成一种串行执行的假象
通过使用线程,可以将复杂并且异步的工作流进一步分解为一组简单并且同步的工作流,每个工作流在一个单独的线程中运行,并在特定的同步位置进行交互

1.2.3 异步事件的简化处理

nio:非阻塞IO

1.2.4 响应更灵敏的用户界面

传统的GUI应用程序:

现代的GUI框架:

1.3 线程带来的风险

1.3.1 安全性问题

安全性:永远不发生糟糕的事情
线程安全是不可破坏的
在没有充足同步的情况下,多个线程的操作执行顺序是不可预测的
竞争条件 -> 同步机制

1.3.2 活跃性问题

活跃性:某件正确的事情最终会发生
各种形式的活跃性问题:

活跃性问题的错误依赖于不同线程的事件发生时序

1.3.3 性能问题

性能:正确的事情尽快发生
性能问题包括:

上下文切换:

同步机制:

1.4 线程无处不在

每个Java应用程序都会使用线程:

线程安全性需求在程序中的蔓延

上一篇 下一篇

猜你喜欢

热点阅读