多线程中常见的成员方法

发布时间 2023-03-27 18:12:52作者: Linqylin

 

MyThread t = new MyThread();

1、String getName()

细节:

如果没有给线程设置名字,线程也是有默认的名字的

格式:Thread-X(X序号,从0开始)

2、void setName(String name)

细节:

如果要给线程设置名字,可以用set方法进行设置,也可以构造方法设置

3、static Thread currentThread()

细节:

当JVM虚拟机启动之后,会自动的启动多条线程

其中有一条线程就叫做main线程

它的作用就是去调用main方法,并执行里面的代码

在以前,我们写的所有的代码,其实都是运行在main线程当中

4、static void sleep(long time)

细节:

(1)哪条线程执行到这个方法,那么哪条线程就会在这里停留对应的时间

(2)方法的参数:就表示睡眠的时间,单位为毫秒

1s=1000ms

(3)当时间到了之后,线程会自动醒来,继续执行下面的其他代码

 

Java中线程的调度为抢占式调度,即结果随机,线程优先级越高,抢占到CPU的概率越大

5、setPriority(int newPriority)

6、final int getPriority()

细节:线程默认的优先级为5,最小为1,最大为10,数值越大,优先级越高。

优先级越高的线程先执行完的概率会高,但不一定。

7、final void setEaemon(boolean on)

//设置为守护线程(备胎线程)

细节:当其他的非守护线程执行完毕之后,守护线程会陆续结束(注意:不是马上结束)。

通俗来讲,就是当非守护线程结束后,非守护线程也没有存在的必要了。

8、public static void yield()

方法调用:

Thread.yield(); //表示出让当前CPU的执行权,即每次重新抢占CPU

这样可以让结果尽可能更均匀一些

9、public final void join()

e.g 

t.join();  //表示把t这个线程,插入到当前线程(当前执行的代码所在的线程,如:main线程)之前。