并发编程基础知识
并发和并行
并发:单个cpu在同一时间段内,多个任务同时执行,偏向于多个任务交替执行,在某一时刻其实只有一个任务在执行(单个CPU就可并发,比如时间片轮转机制)。指单个cpu同时处理多个线程任务,cpu在反复切换任务线程,实际还是串行化的。
并行:同一时刻,多个任务同时执行(并行需要有多个CPU)。指多个cpu同时处理多个线程任务,cpu可以同时处理不同的任务,异步处理。
进程和线程
进程,一个可执行程序运行起来就创建了一个进程。进程就是一个运行起来的可执行程序。
进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
进程是具有独立功能的程序在一个数据集合上运行过程,它是系统进行资源分配和调度的一个独立单位。
在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”。
一切进程至少都有一个执行线程。
线程在进程内部运行,本质是在进程地址空间内运行。
在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化。
透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程执行流。
与多线程编程相关的头文件
简单的程序
std::thread “Hello World”
1 |
|
原文链接: https://kettycode.github.io/2024/02/06/cpp/并发编程/base/
版权声明: 转载请注明出处.