第五章 线程常见方法

74 阅读2分钟
方法名static功能说明注意
start()启动一个新线程,在新的线程运行run方法中的代码start方法只是让线程进入就绪,里面的代码不一定会立即运行(cpu的时间片还没分给它)。每个线程的start方法只能调用一次,如果调用了多次会出现IllegalThreadStateException
run()新的线程启动后会调用的方法如果在构造Thread对象时传递了Runnable参数,则线程启动后会调用Runnable中的run方法。否则默认不执行任何操作。但可以创建Thread的子类对象,来覆盖默认行为
join等待线程结束运行
join(long n)等待线程运行结束,最多等待n毫秒
getId()获取线程长整型的idid唯一
getName()获取线程名
setName(String)设置线程名
getPriority(int)获取线程优先级
setPriority(int)修改线程优先级java中规定线程优先级1~10的整数,较大优先级能够提高线程被cpu调度的几率
getState()获取线程状态java中的状态是用6个enum表示,分别为:NEW,RUNNABLE,BLOCKED,WATING,TIME_WATING,TERMINATED
isInterrupted()判断线程是否被打断不会清除打断标记
isAlive()线程是否存活(还没有运行完毕)
interrupt()打断线程如果被打断线程正在sleep,wait,join会导致被打断的线程抛出InterruptedException,并清除打断标记;如果打断正在运行的线程,则会设置打断标记;park的线程被打断,也会设置打断标记
interruptedstatic判断当前线程是否被打断会清除打断标记
currentThread()static获取当前正在执行的线程
yieId()static提示线程调度器让出当前线程cpu的使用主要是为了测试
sleep()static让当前执行的线程休眠n毫秒,休眠时让出cpu的时间片给其他线程