方法名 | 功能 | 说明 |
---|---|---|
start() | 启动一个新线程,在新的线程运行 run 方法中的代码 | start 方法只是让线程进入就绪,里面代码不一定立刻运行(CPU 的时间片还没分给它)。每个线程对象的start方法只能调用一次,如果调用了多次会出现 IllegalThreadStateException |
run() | 新线程启动后会调用的方法 | 如果在构造 Thread 对象时传递了 Runnable 参数,则线程启动后会调用 Runnable 中的 run 方法,否则默认不执行任何操作。但可以创建 Thread 的子类对象,来覆盖默认行为 |
join() | 等待线程运行结束 | 阻塞等待 |
join(long n) | 等待线程运行结束,最多等待 n毫秒 | 超过参数n指定的毫秒数等待后将会停止等待 |
getId() | 获取线程长整型的 id | id 在线程存活周期内将会保持唯一,但是在线程终止后,可能会被重新使用 |
getName() | 获取线程名 | 线程名可以在创建线程对象时候指定,也可以通过setName来指定 |
setName(String) | 修改线程名 | |
getPriority() | 获取线程优先级 | |
setPriority(int) | 修改线程优先级 | Java中规定线程优先级是1~10 的整数,较大的优先级能提高该线程被 CPU 调度的机率 |
getState() | 获取线程状态 | Java 中线程状态是用 6 个 enum 表示,分别为:NEW, RUNNABLE, BLOCKED, WAITING,TIMED_WAITING, TERMINATED |
isInterrupted() | 判断线程是否被打断 | 不会清除打断标记 |
interrupt() | 打断线程(static方法) | 如果被打断线程正在 sleep,wait,join 会导致被打断的线程抛出 InterruptedException,并清除打断标记;如果打断的正在运行的线程,则会设置打断标记;park 的线程被打断,也会设置打断标记。 |
currentThread() | 获取当前正在执行的线程(static方法) | |
sleep(long n) | 让当前执行的线程休眠n毫秒,休眠时让出 CPU的时间片给其它线程(static方法) | |
yield() | 提示线程调度器让出当前线程对CPU的使用(static方法) | 主要是为了测试和调试 |
文章评论