- 一个线程只能属于一个进程,而一个进程可以包含多个线程,至少有一个线程(主线程)
- 资源调度和分配给进程,同一进程中的所有线程共享该进程的所有资源
- 线程在执行过程中,共享数据一般都需要进行协作同步
- CPU分给线程,真正在处理机上运行的是线程
- 线程是指在进程内部的一个执行单元,也是进程内的可调度的实体,两者都是动态的概念
进程和线程最大的区别在于:
进程是由操作系统来控制的,而线程是由进程来控制
线程本身的数据通常只有寄存器数据以及当前程序在运行时使用的堆栈,所以线程的切换比进程切换的成本要小的多。
多个进程的内部数据和状态是完全独立的,而同一个进程内的多线程共享一块内存空间和一组系统资源,有可能互相影响。