20230605 java.lang.Thread
介绍
java.lang.Thread
public class Thread implements Runnable
API
常量
线程优先级:
- MIN_PRIORITY
- 1,最小
- NORM_PRIORITY
- 5,默认
- MAX_PRIORITY
- 10,最大
java.lang.Thread.State
介绍
java.lang.Thread.State
public enum State
- 线程状态
- 线程在给定时间点只能处于一种状态。这些状态是不反映任何操作系统线程状态的虚拟机状态
- 关联方法:
java.lang.Thread#getState
API
枚举值
- NEW
- RUNNABLE
- BLOCKED
- WAITING
- TIMED_WAITING
- TERMINATED
static
- currentThread
- yield
- 向调度器提示当前线程愿意放弃其当前对处理器的使用。调度器可能忽略此提示
- sleep
- onSpinWait
- 指示调用者暂时无法进行,直到其他活动的一个或多个操作发生为止。通过在自旋等待循环构造的每次迭代中调用此方法,调用线程向运行时指示它正在忙等待。运行时可能会采取措施来提高调用自旋等待循环构造的性能
- interrupted
- 测试当前线程是否被中断
- 该方法清除线程的中断状态,如果连续调用此方法两次,则第二次调用将返回 false
- 如果当前线程已被中断, 返回 true ;否则 false
- dumpStack
- 将当前线程的堆栈跟踪打印到标准错误流
- 用于调试
- holdsLock
- 判断当前线程持有指定对象上的监视器锁时才返回 true
- setDefaultUncaughtExceptionHandler , getDefaultUncaughtExceptionHandler
构造器
- Thread()
- Thread(Runnable target)
- Thread(ThreadGroup group, Runnable target)
- Thread(String name)
- Thread(ThreadGroup group, String name)
- Thread(Runnable target, String name)
- Thread(ThreadGroup group, Runnable target, String name)
- Thread(ThreadGroup group, Runnable target, String name, long stackSize)
- Thread(ThreadGroup group, Runnable target, String name, long stackSize, boolean inheritThreadLocals)
入参含义:
- group
- 线程组
- 默认 null
- target
- 执行目标,待执行的任务
- 默认 null
- name
- 线程名称
- 默认
"Thread-" + nextThreadNum()
threadInitNumber
是 Thread 类的静态变量,从 0 开始
- stackSize
- 线程栈的大小,线程栈是指为一个线程分配的内存空间
- 默认 0
- inheritThreadLocals
- 是否从当前线程继承
ThreadLocal
变量 - 默认 false
- 是否从当前线程继承
public
线程相关
-
start
-
interrupt
- 中断此线程
-
isInterrupted
- 测试此线程是否已被中断
- 线程的中断状态不受此方法影响
-
isAlive
- 测试此线程是否存活
-
setPriority , getPriority
- 优先级
-
setName , getName
-
join
- 等待这个线程结束
-
setDaemon , isDaemon
- 守护线程
-
getContextClassLoader , setContextClassLoader
- 线程的上下文 ClassLoader
-
getStackTrace , getAllStackTraces
- 线程的堆栈轨迹
-
getId
-
getState
-
getUncaughtExceptionHandler , setUncaughtExceptionHandler
线程组相关
- getThreadGroup
- activeCount
- 返回当前线程的线程组及其子组中活动线程数的估计值。递归迭代当前线程的线程组中的所有子组
- enumerate
- 将当前线程的线程组及其子组中的每个活动线程复制到指定的数组中
其他
- run
- toString