重新认识Thread

2025-01-07

java 锁是基于对象的对象锁

每个java对象,都wait和notify方法。

需要调用wait必须在synchronized块中,即有锁时才能调用。

调用wait之后会阻塞线程执行,直到被notify通知唤醒。

image

 wait(可能被假唤醒)

- - - - -

可以为线程增加全局异常监听setUncaughtExceptionHandler

- - - - -

private static final ThreadLocal<String> USER_CONTEXT = new ThreadLocal<>();  线程局部变量。

- - -

线程的几种状态:

1、NEW 新建待命状态

2、RUNNABLE 运行中

3、BLOCKED 被阻塞

4、WAITING 等待状态

5、TIMED_WAITING 限时等待

6、TERMINATED 执行完毕

image

 进入等待或者说限时等待有3种方式:

1、Object.wait

2、Thread.join

3、LockSupport.park

- - - - - -

Thread.onSpinWait()是Java 9引入的自旋等待优化API,用于在短时间自旋等待的场景中,向JVM和底层硬件传递“当前线程正在自旋等待”的信号,从而优化CPU资源的使用效率。

posted on 2026-01-07 12:04  angelshelter  阅读(1)  评论(0)    收藏  举报

导航