1.相关概念
1.1并发(Concurrent)
简单理解,同一处理器上,同时运行多个进程。但是此时的同时执行只是宏观上的效果,实际上只是多个进程在快速的交替执行,一次只有一个进程在处理器上执行。
1.2并行(Parallel)
当系统拥有一个以上的CPU或CPU拥有多个核心时,同一时间运行的进程互相不用抢占CPU资源,可以在微观角度上做到同时进行。
1.3进程(Process)
正在运行的程序实体。
1.4线程*(Thread)
操作系统能够进行调度的最小单位。是进程中的实际运作单位。一条线程就是进程中一个单一的顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
进程和线程的区别:
- 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;进程是系统资源分配的单位,线程是系统调度的单位。
- 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;
- 进程之间相互独立,进程之间不能共享资源,而线程共享所在进程的地址空间和其它资源。同时线程还有自己的栈和栈指针,程序计数器等寄存器。
- 调度和切换:线程上下文切换比进程上下文切换要快得多。
2.多线程的优缺点
2.1优点:
1.加快程序运行速度
2.提高CPU利用率
这点比较好理解,多线程同时运行,程序运行速度当然加快但是需要多个CPU核心,所有同时也提高了CPU的利用率。
2.2缺点:
1.在等待使用共享资源时会造成程序运行速度变慢。因为多个线程都要使用。
2.对线程进行管理会给系统带来额外的负担。
3.线程死锁。