多线程:Thread中的常见方法

start():启动一个新线程,在新的线程运行 run 方法中的代码 注意:start 方法只是让线程进入就绪,里面代码不一定立刻行(CPU 的时间片还没分给它)。每个线程对象的start方法只能调用一次,如果调用了多次会出现IllegalThreadStateException。

run():新线程启动后会调用的方法 注意:如果在构造 Thread 对象时传递了 Runnable 参数,则线程启动后会调用 Runnable 中的 run 方法,否则默认不执行任何操作。但可以创建 Thread 的子类对象,来覆盖默认行为。

join():等待线程运行结束
join(long n):等待线程运行结束,最多等待 n毫秒

getId():获取线程长整型的 id
getName():获取线程名
setName(String):修改线程名
getPriority():获取线程优先级
setPriority(int):修改线程优先级,优先级区间[1,10]
getState():获取线程状态,Java 中线程状态是用 6 个 enum 表示,分别为:NEW, RUNNABLE, BLOCKED, WAITING,TIMED_WAITING, TERMINATED

isInterrupted():判断是否被打断,不会清除打断标记
isAlive():线程是否存活(还没有运行完毕)
interrupt():打断线程,注意:如果被打断线程正在 sleep,wait,join 会导致被打断的线程抛出 InterruptedException,并清除 打断标记 ;如果打断的正在运行的线程,则会设置 打断标记 ;park 的线程被打断,也会设置打断标记(使用后LockSupport.park()方法,可以让线程阻塞)
interrupted():判断当前线程是否被打断,会清除打断标记
setDaemon():默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,也会强制结束。

currentThread():获取当前正在执行的线程
sleep(long n):让当前执行的线程休眠n毫秒,休眠时让出cpu的时间片给其它线程
yield():提示线程调度器让出当前线程对CPU的使用

不推荐的方法(过时方法)
stop():停止线程运行
suspend():挂起(暂停)线程运行
resume():恢复线程运行。

原文地址:https://www.cnblogs.com/wwjj4811/p/13669434.html