以下笔记来源尚硅谷,仅供学习使用。
进程和线程
- 进程:在内存中执行的应用程序
- 线程:是进程中最小的执行单元
线程负责当前进程中程序的运行.一个进程中至少有一个线程,一个进程还可以有多个线程,这样的应用程序就称之为多线程程序。
并发和并行
- 并行:在同一个时刻,有多个执行在多个CPU上(同时)执行(好比是多个人做不同的事儿)
- 并发:在同一个时刻,有多个指令在单个CPU上(交替)执行
之前CPU是单核,但是在执行多个程序的时候好像是在同时执行,原因是CPU在多个线程之间做高速切换
现在咱们的CPU都是多核多线程的了,比如2核4线程,那么CPU可以同时运行4个线程,此时不同切换,但是如果多了,CPU就要切换了,所以现在CPU在执行程序的时候并发和并行都存在
CPU 调度
- 分时调度: 让所有的线程轮流获取CPU使用权,并且平均分配每个线程占用CPU的时间片
- 抢占式调度:多个线程轮流抢占CPU使用权,哪个线程先抢到了,哪个线程先执行,一般都是优先级高的先抢到CPU使用权的几率大,我们java程序就是抢占式调度
主线程
主线程:CPU和内存之间开辟的专门为main方法服务的线程