JUC并发编程系列文章
http://t.csdn.cn/UgzQi
前言
一、进程和线程
程序的上下文切换:电脑的内存容量是有限的,当我们的某个任务不运行时,其他的线程需要运行,但这时内存容量不够了就需要进行程序上下文的切换,将暂时不运行的程序任务临时存储起来,切换到需要运行的程序任务
二、并行和并发的概念
并行与并发 单核 cpu 下,线程实际还是 行执行 的。操作系统中有一个组件叫做任务调度器,将 cpu 的时间片(windows 下时间片最小约为 15 毫秒)分给不同的线程使用,只是由于 cpu 在线程间(时间片很短)的切换非常快,人类感觉是 同时运行的 。总结为一句话就是:微观串行,宏观并行, 般会将这种 线程轮流使用 cpu 的做法称为并发,concurrent
并发的概念
并行的概念
引用 Rob Pike 的一段描述: 并发(concurrent) 是同一时间应对 (dealing with)多件事情的能力, 并行 (parallel) 是同一时间动手做 (doing) 多件事情的能力
线程的应用
异步调用
提升效率
多核cpu下多线程并行执行,可以提高程序的执行效率。而单核cpu即使使用了多线程也是无法提升执行效率的,因为单核微观上还是串行