文章目录
一、interrupt()方法
二、join()方法
三、setDamon()方法
四、currentThread()方法
五、isAlive()方法
六、其他方法
1.void start()
使新建好的线程从新建状态进入就绪状态,Java 虚拟机负责调用该线程的 run() 方法。多次启动一个线程是非法的。
2.void sleep(long millis)
Thread类静态方法,线程进入阻塞状态,在指定时间(单位为毫秒)到达之后进入就绪状态(Runnable),而非立即进入执行状态。 执行该方法会爆发异常,需要抛出或者try-catch
3.void yield()
静态方法,当前线程放弃占用CPU资源,回到就绪状态,(不经过阻塞状态从运行状态回到就绪状态,可能是系统使该线程失去CPU的使用权或者该线程调用了yield方法)使其他优先级不低于此线程的线程有机会被执行(存在不确定性,不能确定是哪一个线程获得CPU的使用权)
4.void setPriority(int newPriority)
设置当前线程的优先级,线程优先级越高,线程获得执行的次数越多,Java线程的优先级用整数表示,取值范围是1~10,Thread类有以下三个静态常量:
static int MAX_PRIORITY 最高优先级值为10;
static int NORM_PRIORITY 默认优先级值为5;
static int MIN_PRIORITY 最低优先级值为1;
假如有A、B线程如果给A线程设置优先级为10,不能保证一定先执行A线程,因为不知道B线程的优先级是多少
5.int getPriority()
获得当前线程的优先级
public class Test {
public static void main(String[] args) {//主线程
TimeThread timeThread = new TimeThread ();
System.out.println(timeThread.getPriority());
}
}
class TimeThread extends Thread{
@Override
public void run() {
}
}
执行结果为:5