java多线程基本概念(一)

线程生命周期


线程生命周期

说明线程工共包含5个状态:

新建状态new:调用线程构造方法创建线程后,线程进入新建状态;

就绪状态runnable:其他线程调start()方法,启动该线程。只有进入就绪状态的线程,才能被cpu调度执行

执行状态running:当线程获取cup权限进行执行

阻塞状态bocked:当线程因为某些原因放弃cpu使用权限,暂时停止运行;阻塞情况分为三种:

1)等待阻塞:当调用对象的wait的方法,让线程等待某项工作完成

2)同步阻塞:当通过synchronized获取同步锁失败(因为同步锁被其他线程占有),进入同步阻塞23

3)其他原因阻塞:当调用线程的sleep()或join()或发出io请求,线程进入阻塞状态;当sleep超时,join等待线程中止或io请求完成线程重新进入就绪状态

死亡状态dead:当线程执行完毕或run方法有异常产生。

该5总状态涉及的内容包括Obejct类,Thread类,synchronized关键字

Obejct类:定义了wait,notify,notifyall等休眠/唤醒函数

Thread类:定义了一系列操作线程的方法;sleep,join等

synchronized关键字:它区分synchronized代码块和synchronized方法;synchronized用于获取对象同步锁

你可能感兴趣的:(java多线程基本概念(一))