gpt4 book ai didi

java - 线程的默认命名约定

转载 作者:行者123 更新时间:2023-12-02 12:58:57 27 4
gpt4 key购买 nike

public class ThreadNaming extends Thread {
public void run(){
System.out.println(Thread.currentThread().getName());
}
public static void main(String args[]){
Thread t1 = new ThreadNaming();
Thread t2 = new ThreadNaming();
t1.start();
System.out.println(t1);
t2.start();
System.out.println(t2);
}
}

输出:线程[线程-0,5,主]线程0线程[线程-1,5,主]线程1

public class ThreadOddNaming extends Thread {
public void run(){
System.out.println(Thread.currentThread().getName());
}
public static void main(String args[]){
Thread t3 = new Thread(new ThreadOddNaming());
Thread t4 = new Thread(new ThreadOddNaming());
t3.start();
t4.start();
System.out.println(t3);
System.out.println(t4);
}
}

输出:线程[线程-1,5,主]线程3线程1线程[线程3,5,主]

现在我有两个问题。

  1. 当使用 new 关键字和类名(扩展线程)构造函数创建线程时,线程命名为以 0, 1, 2, 3 .. (n-1) 开头的整数。但是,当直接使用 Thread 构造函数传递类名(扩展 Thread)作为参数创建线程时,线程命名是以 1,3,5..(2n-1) 开头的奇数

为什么会出现这种行为或者它对于平台是否是恒定的?(我在windows系统中运行这个程序)。或者,它可能会针对不同平台显示不同的行为?

  • 每当我们打印任何线程对象时,为什么线程的优先级总是5。
  • 分配给线程的默认优先级是 NORM_PRIORITY。那么,NORM_PRIORITY 的值是 5 吗?

    最佳答案

    When Thread is created with new keyword with class name(extending Thread) constructor, then thread naming is whole number begins with 0, 1, 2, 3 .. (n-1). But when it is created directly with Thread constructor passing class name (extending Thread) as argument, then thread naming is odd number begins with 1,3,5..(2n-1)

    这是因为

    线程 t3 = new Thread(new ThreadOddNaming());

    线程 t4 = new Thread(new ThreadOddNaming());

    总共创建4个线程。这就是您看到此行为的原因。

    Whenever we print any thread object, why the priority of the thread is always 5.

    因为Thread类的默认优先级是NORM_PRIORITY。

    公共(public)最终静态 int NORM_PRIORITY = 5;

    你可以在Thread的源代码here中看到这一点.

    请记住,新创建的线程的优先级始终与其创建者的优先级相同。因此,如果您有一个优先级为 4 的线程创建一个新线程,那么新线程的优先级将为 4,除非使用 setPriority()

    进行其他设置

    干杯!

    关于java - 线程的默认命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44341694/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com