1. 并发、线程、进程的概念
1.1并发
两个或者多个任务同时发生:一个程序同时执行多个独立的任务;
单核cpu的计算机在某一时刻只能指行一个任务,由操作系统调度,进行多次的任务切换,产生并发的假象,这种切换是要有时间的开销的,比如操作系统要保存切换时的各种状态、执行进度等信息,切换回来时要复原这些信息。
随着硬件的发展,现在出现了多核处理器,在一块芯片上有多个核,能够实现真正的并发执行多个任务。
使用并发的动机:主要是同时执行多个任务,提高效率。
其中实现并发的方式:
(1)通过多个进程实现并发、
(2)通过多线程实现并发
1.2 进程和线程
运行起来的可执行程序就是进程,进程是由线程构成的,一个进程可以包含多个线程,但是主线程只有一个。
可以由主线程产生其他线程,这时就会产生多线程,这就是并发的一种。虽然多线程可以提高效率,但是线程并不是越多越好,每个线程都有自己独立的堆栈空间,线程之间的切换要保存很多中间状态,切换会消耗本该属于程序运行的时间。
1.3 线程和进程之间的对比
和进程相比,线程有以下优点:
(1)线程启动速度更快,更轻量级
(2)系统资源消耗更少,执行速度更快,比如共享内存这种通信方式比任何其他的通信方式都快