C++多线程
C++多线程进程和线程的概念程序和进程进程可以理解为在内存中运行的程序。
程序是由指令和参数组成的带有逻辑的可执行二进制文件,是保存在磁盘中的。
当我们执行程序时,操作系统就会读取保存在磁盘中的文件到内存中,并开始执行其中的指令代码,就成为了进程。
进程是操作系统为程序分配系统资源的最小单位,这里的系统资源包括但不限于内存空间、IO缓冲区等。
线程线程是程序最小的执行单位,程序的所有任务都要在线程内执行,CPU按照任务执行。这里的任务指的是代码块。
线程和进程不是相互包含的关系,他们是互相结合的,对程序的运行都很重要。进程中至少有一个线程,如果程序中没有用到多线程,那么主线程就是唯一的线程;线程不能脱离进程而存在,进程退出了或者被截杀了,其内部的线程也就消失了。
在一个进程内,所有线程共用进程的系统资源,非常和睦地共同执行程序任务;但对于CPU时间片来说非常特殊,因为一个CPU核心在同一时刻只能被一个线程占用,所以所有线程都在同时“抢”CPU资源(这里说的抢并不是真正意义上的抢,而是操作系统随机分配的,这其中还涉及到就绪队列等调度原理,此处不细究)。
如果只有一个CPU核心,那么所 ...
