程序、进程、线程
1. 什么是程序、进程、线程
- 程序:完成特定任务、用某种语言编写的一组指令的集合。(一个人)
- 进程:程序的一次执行过程或是正在运行中的一个程序。(一个动起来的人)
- 线程:进程可细分为单个或多个线程,是一个程序内部的一条执行通道。(人同时做举手和伸腿的动作,动作就是线程)
- 同一个进程可以有多个线程,每个线程有独立的运算栈和程序计数器,线程切换的开销小
- 一个进程的多个线程可以访问相同的变量和对象。所以线程之间的通信更加的高效,但是这会带来安全隐患。例如:数据错乱和数据安全。
2.什么是并行、并发
- 并行:多个CPU同时执行多个任务(多人同时做不同的事)
- 并发:一个CPU(用时间片)同时执行多个任务。(一个人分配时间做不同的事)
3. 单核CPU和多核CPU的理解
- 单核CPU通过并发操作可以执行多个线程。
- 多核CPU能更好的发挥多线程的效率。
4. 多线程优点
- 可以提高程序响应速度。
- 提高计算机CPU的利用率
- 改善程序结构,将长而复杂的进程分为多个线程,独立运行,利于理解和修改
5. 什么时候需要多线程
- 程序需要同时执多个任务
- 程序需要实现一些需要等待的操作,如用户输入、文件读写操作、网络操作、搜索等
- 需要一些后台运行的程序时