- Object.wait():使当前线程处于等待状态直到另一个线程唤醒它;
- Thread.join():使当前线程等待另一个线程执行完毕之后再继续执行,底层调用的是 Object 实例的 wait() 方法;
- LockSupport.park():除非获得调用许可,否则禁用当前线程进行线程调度
调用如下方法会使线程进入超时等待状态:
- Thread.sleep(long millis):使当前线程睡眠指定时间,sleep() 方法不会释放当前锁,但会让出 CPU,所以其他不需要争夺锁的线程可以获取 CPU 执行;
- Object.wait(long timeout):线程休眠指定时间,等待期间可以通过 notify() / notifyAll() 唤醒;
- Thread.join(long millis):等待当前线程最多执行 millis 毫秒,如果 millis 为 0,则会一直执行;
- LockSupport.parkNanos(long nanos): 除非获得调用许可,否则禁用当前线程进行线程调度指定时间;
- LockSupport.parkUntil(long deadline):同上,也是禁止线程进行调度指定时间;
其实等待和锁定状态可以被笼统的称为阻塞状态,就是停着不动了嘛,在回答面试题时建议回答6种状态版本,就是是JDK源码中定义的,一来有官方支持,二来证明咱看过一点源码 。
状态转换
- 新建状态的线程调用start方法进入到运行状态
- 运行状态线程如果遇到Object.wait()、Thread.join()或者LockSupport.park()方法则会放弃CPU执行权进入等待状态,这个装需要被唤醒之后才会再次进入就绪状态获得到CPU时间片进入运行状态
- 运行状态的线程遇到Thread.sleep(long)、Object.wait(long)、Thread.join(long)等方法,也就是可以传入时间的,就会进入超时等待状态,达到时间之后就会自动进入就绪状态,当CPU执行就进入运行状态
- 运行状态的线程如果被同步代码块或者同步方法包裹,执行时如果释放锁资源,就会进入阻塞状态或者叫锁定状态,只有再次获取到锁资源时才会进入就绪状态,等到CPU时间片后进入运行状态
- 执行完的线程就会进入终止状态,线程结束
文章插图
Thread类详解成员变量
类型
作用
name
volatile String
线程名称
priority
int
线程的优先级,默认为5,范围1-10
threadQ
Thread
eetop
long
single_step
boolean
是否单步执行
daemon
boolean
守护线程状态,默认为false
stillborn
boolean
JVM状态,默认为false
target
target
将被执行的Runnable实现类
group
ThreadGroup
当前线程的线程组
contextClassLoader
ClassLoader
这个线程上下文的类加载器
inheritedAccessControlContext
AccessControlContext
该线程继承的AccessControlContext
threadInitNumber
static int
用于匿名线程的自动编号
threadLocals
ThreadLocal.ThreadLocalMap
属于此线程的ThreadLocal,这个映射关系通过ThreadLocal维持
inheritableThreadLocals
ThreadLocal.ThreadLocalMap
这个线程的InheritableThreadLocal,其映射关系通过InheritableThreadLocal维持
stackSize
long
此线程的请求的堆栈的大小,如果创建者的请求堆栈大小为0,则不指定堆栈大小,由jvm来自行决定 。一些jvm会忽略这个参数 。
nativeParkEventPointer
long
在本机线程终止后持续存在的jvm私有状态 。
tid
long
线程的ID
threadSeqNumber
static long
用于生成线程的ID
threadStatus
volatile int
java线程状态,0表示未启动
parkBlocker
volatile Object
提供给LockSupport调用的参数
blocker
volatile Interruptible
推荐阅读
- 广州医养结合的养老院 老年公寓和养老院设计
- 叔本华生平和著作 叔本华的书
- 做好传帮带工作 以身作则团结合作传帮带是什么意思
- 论语是一部什么体的著作 论语是一部什么体散文
- 岳云鹏|岳云鹏相声太无聊?若结合背后安排的用意,就会佩服他的能力
- 长短句的表达效果 长短句结合的作用阅读理解
- 吴承恩人物解析及著作 吴承恩是哪个朝代的小说家
- 王一博|王一博分饰两角舞动双生,国风与街舞的结合,别有一番风味
- 面是什么意思(点面结合的面是什么意思)
- 鹤唳华亭|《鹤唳华亭》,完成率很高,将风格与文学结合在一起