来源网络资料,仅作个人学习记录使用。
文章目录
进程和线程的区别
- 基本概念
进程是资源分配和调度的基本单位;线程是程序执行的最小单位,是进程执行的子单位。一个进程至少拥有一个线程,一个进程可以运行多个线程,这些线程共享同一块内存。 - 资源开销
进程:由于每个进程都有独立的内存空间,创建和销毁进程的开销较大;进程间切换需要保存和恢复整个进程状态,因此上下文切换开销较高。
线程:线程共享相同的内存空间,创建和销毁开销较小;线程间切换只需要保存和恢复少量的线程上下文。 - 通信和同步
由于进程间相互隔离,通信需要使用一些特殊机制,如消息队列、管道、共享内存等;线程可通过共享内存直接访问共享数据,通信更加方便。 - 安全性
进程独立性更高,一个进程崩溃不会直接影响其他进程的稳定性,安全性更高;而一个进程里的线程由于内存共享,一个线程崩溃有可能会影响整个进程稳定性,安全性较低。
并行和并发的区别
并行是在同一时刻 执行多个任务,每个任务在不同的处理单元(如多个CPU核心)上执行;并发是在相同时间段执行多个任务,任务可能交替执行,通过时间片轮转或者事件驱动的方式实现。