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