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
守护线程:
当其他的 非守护线程 执行完毕之后,守护线程就没有继续执行下去的必要了,因此守护线程也会陆续结束。
浙公网安备 33010602011771号