线程是处理器任务调度和执行的基本单元
进程是操作系统资源分配的基本单元
也就是线程是处理器级别的,进程是操作系统级别的,这是线程与进程的根本区别。
线程与进程还有一些其他地方的区别:
- 资源开销:每一个进程都有独立的代码和数据空间,而线程可以看作轻量级进程,同一类的线程共享代码和数据空间,每一个线程都有自己独立的运行栈和程序计数器。进程之间的切换开销比较大,线程之间的切换开销比较小。
- 包含关系:一个进程中可以有多个线程的存在(多线程),所以线程又叫做轻量级进程。
- 内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的。
- 影响关系:在多进程中,一个进程的崩溃不会影响其他进程的运行,但是在多线程的时候,一个线程的崩溃会导致整个进程的崩溃。所以说,多进程比多线程的健壮性要强一点。