进程和线程
- 什么是进程
- 什么是线程
- 为啥要有线程
- 🌲进程和线程的关系
- 🌲系统管理与分配资源和CPU调度角度
- 🌲资源使用角度
- 🌲线程的特点
什么是进程
进程是操作系统对⼀个正在运⾏的程序的⼀种抽象,换⾔之,可以把进程看做程序的⼀次运⾏过程;
同时,在操作系统内部,进程⼜是操作系统进⾏资源分配的基本单位。
什么是线程
⼀个线程就是⼀个 “执⾏流”. 每个线程之间都可以按照顺序执⾏⾃⼰的代码. 多个线程之间 “同时” 执⾏
着多份代码.。
为啥要有线程
⾸先, “并发编程” 成为 “刚需”.
- 单核 CPU 的发展遇到了瓶颈. 要想提⾼算⼒, 就需要多核 CPU. ⽽并发编程能更充分利⽤多核 CPU
资源. - 有些任务场景需要 “等待 IO”, 为了让等待 IO 的时间能够去做⼀些其他的⼯作, 也需要⽤到并发编程.
其次, 虽然多进程也能实现 并发编程, 但是线程⽐进程更轻量.
- 创建线程⽐创建进程更快.
- 销毁线程⽐销毁进程更快.
- 调度线程⽐调度进程更快.
🌲进程和线程的关系
进程是包含线程的. 每个进程⾄少有⼀个线程存在,即主线程(进程中包含一条或多条线程)。
🌲系统管理与分配资源和CPU调度角度
进程是系统分配资源的最小单位,线程是CPU调度的最小单位。
⼀个进程挂了⼀般不会影响到其他进程. 但是⼀个线程挂了, 可能把同进程内的其他线程⼀起带⾛(整
个进程崩溃).
🌲资源使用角度
进程之间不能共享资源,进程中的线程之间共享进程的所有资源
(同一个进程中的线程之间共享所有资源)
🌲线程的特点
线程的创建、销毁、调度效率比进程更高,并且有自己独立的执行任务。