并发 进程 线程的基本概念

并发

定义:两个或者更多的任务(独立的活动)同时发生:即就是一个程序同时执行多个独立的任务

以往的计算机,单核cpu:某一时刻只能执行一个任务:由于操作系统的调度,每秒钟进行多次的“任务切换”,但这并不真正的并发,这种切换(上下文切换)是要有时间开销的,比如操作系统要保存着切换是的各种状态。

随着硬件的发展,出现了多处理器计算机,在一块芯片上有多核cpu,能够实现真正的并行多分任务。但是cpu的核数完全不能满足多个任务,还是得依靠os进行调度。

使用并发可以同时进行多个任务,提高效率。

可执行程序

磁盘上的一个文件,在win系统下以,以.exe结尾,在linux上使用指令ls -la后有rwxrwxrwx,其中x表示可执行

进程

可执行的程序的一次执行。(运行起来的)

线程

每个进程,都有一个主线程,这个主线程是唯一的,也就是一个进程中只能有一个主线程。

当执行一个可执行程序,产生一个进程后,主线程随着进程默默启动。

运行程序时,进程的的主线程来调用main函数的代码。主线程随着主进程一起产生与消失。

c++11之前,跨平台的多线程的程序需要借助第三方库来实现,c++11之后,提供了内部的多线程库,可以实现跨平台编程。