多线程概念
进程
- 指一个内存中运行的应用程序,每个进程都有一个独立的内存空间。
线程
- 进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行,一个进程最少有一个线程。
- 线程是在进程的基础上进一步的划分。一个进程启动后,里面若干执行路径可划分成多个线程。
线程调度
CPU在多个线程间来回切换运行,给人一种同时运行的感觉。
-
分时调度
- 所有线程轮流使用CPU的使用权,平均分配每个线程占用的CPU空间。
-
抢占式调度
- 优先让优先级高的线程使用CPU,如果线程优先级相同,会随机选择一个(线程随机性),Java使用的是抢占式调度。
同步与异步
同步:排队执行,效率低但是安全。
异步:同时执行,效率低但是不安全。
并发与并行
并发:指两个或多个事件在同一时间段内发生。
并行:指两个或多个事件在统一时刻发生(同时发生)。