一.什么是线程和进程?
1.线程(Thread)
线程是进程内的一个执行单元,也是CPU调度的最小单位,共享进程的内存和资源。
2.进程(Process)
进程是计算机正在运行的程序的实例,是操作系统进行资源分配和调度的基本单位,拥有独立的内存空间和系统资源。
二.线程与进程之间的区别
1.概念
进程是系统分配资源的最小单位,而线程是系统调度的最小单位。
2.资源占用
因为每一个进程都有自己独立的内存空间,所以资源开销会大;而对于线程来说,同一个进程的线程可以共享资源,从而资源开销会小。
3.独立性
进程之间相互独立,一个进程挂了一般不会影响其他进程,但是一个线程挂了,会影响同一个进程中的其他线程,导致整个进程崩溃。
4.创建与开销
创建一个新的线程的代价要比创建一个新进程小得多,因为新进程的创建和销毁需要分配或者回收内存和文件,开销比较大,而新线程只需要分配少量资源,开销较小。
5.通信方式
进程间通信需要共享内存等复杂机制,而线程间可直接读写共享内存,通信简单高效。
6.并发性
进程也可以并发性执行,但开销大,线程比进程更轻量,效率更高。
7.其他区别
创建线程比创建进程更快,销毁线程比销毁进程更快,调度线程比调度进程更快。
三.线程与进程之间的联系
1.从属关系
核心联系是线程依赖进程而存在,线程不可能独立存在,线程是进程的一部分,一个进程至少含有一个线程,也就是主线程。
2.资源联系
线程共享进程的代码、文件资源,进程资源独立。