start()
启动新线程,在新线程中执行run方法代码。
调用start方法后,线程进入就绪态。
一个线程的start方法只能调用一次,否则会报异常 IllegalThreadStateException
run()
我们一般会重写run方法。
直接调用run方法,也会执行,但不会开启新的线程
join()
等待线程运行结束
join(n)
等待线程运行结束,最多等待n毫秒
isInterrupted()
判断是否被打断, 不会清除 打断标记
static interrupted()
判断线程是否被打断,并清除打断标记
isAlive()
线程是否还存活
interrupt()
打断线程。
如果被打断的线程正在sleep,wait,join,会导致被打断的线程抛出InterruptedException,并清除打断标记
如果打断正在运行的线程,则会设置打断标记。
park的线程被打断,也会设置打断标记
static currentThread()
获取当前正在执行的线程
static sleep(long n)
让当前线程休眠n毫秒
static yield()
提示线程调度器让出当前线程对CPU的使用
线程会从Running进入Timed Waiting状态(阻塞)
getId()
获取线程长整型的 id,id 唯一
getName()
获取线程名
setName(String)
修改线程名
getPriority()
获取线程优先级
setPriority(int)
修改线程优先级,java中规定线程优先级是1~10 的整数,较大的优先级能提高该线程被 CPU 调度的机率。
getState()
获取线程的优先级
Java 中线程状态是用 6 个 enum 表示,分别为:
NEW(线程刚刚被创建,还没调用start方法)
RUNNABLE(操作系统层面的可运行状态,运行状态,部分阻塞状态(由BIO导致的阻塞,在Java里无法区分))
BLOCKED(Java阻塞状态)
WAITING(join,Java阻塞状态)
TIMED_WAITING(sleep,Java阻塞状态)
TERMINATED(线程结束)