Thread类里的API

1、public final String getName():返回该线程的名称。如果线程没名字,默认Thread-0/1/2/3...

2、public final void setName(String name):给线程设置名字

3、Thread.currentThread().getName():返回对当前正在执行的线程对象的名字,可以用在想获取main线程/未继承Thread线程的名字上

3、public final int getPriority():返回线程的优先级

4、public final void setPriority(int priority):给线程设置优先级
用这种方法设置的线程优先级,没什么用,它仅仅只能被看做是一种"建议"(对操作系统的建议)。实际运行中,线程的运行顺序是按照操作系统设置的优先级(静态优先级+动态优先级)来进行抢占式调度

java官方说:线程优先级并非完全没有用,我们Thread的优先级,它具有统计意义,总的来说,高优先级的线程占用的cpu执行时间多一点,低优先级线程,占用cpu执行时间,短一点

Thread类的成员变量
static int MAX_PRIORITY:线程可以具有的最高优先级
static int MIN_PRIORITY:线程可以具有的最低优先级
static int NORM_PRIORITY:分配给线程的默认优先级 

线程控制API

public static native void sleep(long m):让线程休眠m毫秒

public final void join():当调用到某个线程的join方法时,会阻塞原来执行的线程,让使用join方法的线程对象先执行完。

public static native void yield():让调用该方法的线程对象暂时放弃CPU执行权,让其它线程有机会执行,注意:并不能一定确保执行其他线程,因为抢占调度的随机性,所以原来放弃CPU执行权的线程也可能再强到线程

public final void setDaemon(boolean on):将该线程标记为守护线程(true)或用户线程(false),必须在启动(start)线程前调用

public void interrupt():清除线程的中断状态(例如调用Object类的wait()、wait(long)或wait(long, int)方法,或者该类的join()、join(long)、join(long, int)、sleep(long)或sleep(long, int)方法,会让线程中断在一个位置,就能用interrupt清除状态让线程继续运行)。它不会中断一个正在运行的线程

public final void stop():彻底停止线程对象,Java官方极其不赞成使用,因为会有数据安全问题,当stop后面有a=100;线程在stop处已停止运行,100不能保存

猜你喜欢

转载自blog.csdn.net/qq_43496435/article/details/113960271