Java基础 Thread类中常用的 成员方法

 

Java 中线程的优先级 最小是 1,最大是 10,默认是 5;优先级越大,抢占到 CPU 的概率越高

 

String  getName()、void  setName (String  name):

如果我们没有给线程设置名字,线程的默认名字是 Thread-序号,序号是从 0 开始的,例如:Thread-0

Thread 类的构造方法 也可以给线程设置名字:Thread t1  =  new  Thread ("haha")

注意:构造方法是不能被子类继承的

 

static  Thread  currentThread ():获取当前线程的对象。哪条线程执行到这个方法,获取的就是哪条线程的对象

如果我在 main 方法当中,我不开启线程,直接调用 Thread  t  =  Thread.currentThread ();  t 就表示 执行 main 方法的那条线程的对象

所以就引申出一个 Java虚拟机 的细节:当 JVM 虚拟机启动之后,它会自动地启动多条线程,其中有一条线程就叫做 main 线程,这个 main 线程的作用就是 去调用 main 方法,并执行里面所有的代码。因此在以前,我们写的所有的代码 其实都是运行在 main 线程当中的。

 

static  void  sleep (long  time):( Thread.sleep (long  time) )

细节①:哪条线程执行到这个方法,那么哪条线程就会在这里停留对应的时间

细节②:停留的时间 跟 方法的参数有关。所以 sleep 方法的参数就表示 睡眠停留的时间,单位是 毫秒(1s = 1000ms)

细节③:当时间到了之后,线程会自动醒来,继续执行下面的其他代码

 

线程的调度的两种方式:

第一种:抢占式调度(多个线程抢夺 CPU 的执行权),体现了随机性

第二种:非抢占式调度(所有的线程轮流式执行)

Java 采用了抢占式调度的方式,线程的优先级越大,抢占到 CPU 的概率越高

虚拟机自己创建的 main 线程的优先级是 5

 

守护线程:

当其他的 非守护线程 执行完毕之后,守护线程就没有继续执行下去的必要了,因此守护线程也会陆续结束。

 

posted @ 2023-10-27 16:53  1stzz1  阅读(17)  评论(0)    收藏  举报