【Java】初识多线程

74 阅读1分钟

以下笔记来源尚硅谷,仅供学习使用。

进程和线程

  • 进程:在内存中执行的应用程序
  • 线程:是进程中最小的执行单元

线程负责当前进程中程序的运行.一个进程中至少有一个线程,一个进程还可以有多个线程,这样的应用程序就称之为多线程程序。

并发和并行

  • 并行:在同一个时刻,有多个执行在多个CPU上(同时)执行(好比是多个人做不同的事儿)
  • 并发:在同一个时刻,有多个指令在单个CPU上(交替)执行
  1. 之前CPU是单核,但是在执行多个程序的时候好像是在同时执行,原因是CPU在多个线程之间做高速切换

  2. 现在咱们的CPU都是多核多线程的了,比如2核4线程,那么CPU可以同时运行4个线程,此时不同切换,但是如果多了,CPU就要切换了,所以现在CPU在执行程序的时候并发和并行都存在

CPU 调度

  1. 分时调度: 让所有的线程轮流获取CPU使用权,并且平均分配每个线程占用CPU的时间片
  2. 抢占式调度:多个线程轮流抢占CPU使用权,哪个线程先抢到了,哪个线程先执行,一般都是优先级高的先抢到CPU使用权的几率大,我们java程序就是抢占式调度

主线程

主线程:CPU和内存之间开辟的专门为main方法服务的线程