线程 Thread.class

1. 线程的六种状态

- NEW
尚未启动的线程处于此状态。 - RUNNABLE
在Java虚拟机中执行的线程处于此状态。 - BLOCKED
被阻塞等待监视器锁定的线程处于此状态。 - WAITING
正在等待另一个线程执行特定动作的线程处于此状态。 - TIMED_WAITING
正在等待另一个线程执行动作达到指定等待时间的线程处于此状态。 - TERMINATED
已退出的线程处于此状态。
Thread.State getState() // 返回此线程的状态。

2. 线程的常用方法
long getId() // 返回此线程的标识符。
static Thread currentThread() // 返回对当前正在执行的线程对象的引用。
String getName() // 返回此线程的名称。
void setName(String name) // 将此线程的名称更改为等于参数 name 。
void setPriority(int newPriority) // 更改此线程的优先级。MAX_PRIORITY = 10
int getPriority() // 返回此线程的优先级。
boolean isAlive() // 测试这个线程是否活着。
boolean isInterrupted() // 测试当前线程是否中断。
void start() // 导致此线程开始执行; Java虚拟机调用此线程的run方法。
void interrupt() // 中断这个线程。
void join() // 等待这个线程死亡(用来控制线程结束的顺序,让调用这个方法的线程先执行完)
// 调用该方法的线程将会一直占用处理机,把其它线程都阻塞,直至该线程结束,再执行其它线程
// 同样使用join()也会产生异常InterruptException
static void sleep(long millis) // 使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)
// sleep执行后会产生异常InterruptedException,需要捕捉或抛出
// 每个对象都有一把锁,sleep不会释放这把锁
static void yield() // 对调度程序的一个暗示,即当前线程愿意产生当前使用的处理器。
// 礼让线程,让当前正在执行的线程暂停,从运行状态转换为就绪状态
// 礼让不一定成功,可能CPU依旧重新调度该线程
boolean isDaemon() // 测试这个线程是否是守护线程。
// 线程分为用户线程和守护线程,虚拟机可以不用等待守护线程执行完毕就关闭
void setDaemon(boolean on) // 将此线程标记为 daemon线程或用户线程
// 默认是false表示用户线程
Thread的常用构造器
public Thread() // 分配一个新的Thread对象。
public Thread(String name) // 创建一个新的Thread对象,并指定线程名称
public Thread(Runnable target) // 封装Runnable对象为线程对象

本文详细介绍了Java线程的六种状态,Thread类和Runnable、Callable接口的使用,以及线程的创建方式、多线程调度和线程池。同时涵盖了Lambda表达式的应用,以及线程安全的关闭方法。
最低0.47元/天 解锁文章
170万+

被折叠的 条评论
为什么被折叠?



