1.并发、进程、线程
1.1 并发 VS 并行
并发(Concurrency)是程序本身的一种特性,程序被分为多个可独立执行的部分,而各个可独立执行的片段通过通信手段进行协调。而并行(Parallel)是程序的计算过程同时执行。
Rob Pike 的观点是:并发是一次处理(dealing with)很多事情,并行是一次做(doing)很多事情。前者是关于程序结构的,而后者是关于程序执行的。我们可以利用并发的手段去构建一种解决方案来解决那些有可能被并行处理的问题。
并发是一个处理器同时处理多个任务,而并行多个处理器或者是多核的处理器同时处理多个不同的任务。前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生。
并发的主要目的:提高效率。
C++11 中引入了五个头文件来支持多线程编程,它们分别是 <atomic>, <thread>, <mutex>, <condition_variable> 和 <future>。
可执行程序
进程
线程
线程是程序执行时的最小单位,它是进程的一个执行流,是 CPU 调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由 CPU 独立调度执行,在多 CPU 环境下就允许多个线程同时运行。同样多线程也可以实现并发操作,每个请求分配一个线程来处理。
主线程,一个进程中的主线程是唯一的。
-
进程是资源分配的最小单位,线程是程序执行的最小单位。
-
。
并发的实现方法
多进程并发
多线程并发
网友评论