进程(process):正在执行的程序,每个进行拥有独立的内存空间
线程,也称为轻量级进程,线程只能在单个进程的作用域内进行活动,线程间共享内存
线程的五种状态
新建:使用new运算符创建一个线程,该线程仅仅是一个空对象,系统没有分配资源
可运行:使用start()方法启动一个线程后,系统为该线程分配除CPU以外的资源
运行:Java运行系统,通过调度,选中一个Runnable的线程,使其占有CPU并转为运行状态,此时运行的是线程中的run方法
阻塞:正在运行的线程由于某种原因不能继续执行,进入阻塞状态
死亡:线程运行结束
线程的优先级
在任何时刻,如果一个比其他线程优先级高的线程变为可运行状态,系统将选择该线程来运行。也就是所谓的 先占式调度
先占式调度分为:
独占方式:当前执行线程将一直执行下去,直到有更高级别的线程进入可运行状态或当前线程执行结束或者由于其他原因,当前线程主动放弃CPU
分时方式:当前运行的线程获取一个CPU的时间片,时间结束后即使没有执行完毕也放弃CPU,进入可运行状态,继续等待CPU资源