gpt4 book ai didi

java - 如何获得第一个线程0 Java?

转载 作者:行者123 更新时间:2023-12-03 12:53:39 25 4
gpt4 key购买 nike

我在做我的研讨会时,问题出现如下:

Reverse hello

Write a program called ReverseHello.java that creates a thread (let’s call it Thread 1).

Thread 1 creates another thread (Thread 2); Thread 2 creates Thread 3;and so on, up to Thread 50.

Each thread should print “Hello from Thread !”, but you shouldstructure your program such that the threads print their greetings inreverse order.


我的代码是这样的:
public class Task2 implements Runnable {

static int threadNo = 1;

@Override
public void run() {
if (threadNo <= 50) {
Thread reverse = new Thread(new Task2());
reverse.setName("Thread "+ threadNo);
threadNo++;
reverse.start();
try {
reverse.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("hello from " + Thread.currentThread().getName());
}

public static void main(String[] args) throws InterruptedException {
Thread t2 = new Thread(new Task2());
t2.start();
}

}
输出是这样的:
hello from Thread 50
hello from Thread 49
hello from Thread 48
hello from Thread 47
hello from Thread 46
hello from Thread 45
hello from Thread 44
hello from Thread 43
hello from Thread 42
hello from Thread 41
hello from Thread 40
hello from Thread 39
hello from Thread 38
hello from Thread 37
hello from Thread 36
hello from Thread 35
hello from Thread 34
hello from Thread 33
hello from Thread 32
hello from Thread 31
hello from Thread 30
hello from Thread 29
hello from Thread 28
hello from Thread 27
hello from Thread 26
hello from Thread 25
hello from Thread 24
hello from Thread 23
hello from Thread 22
hello from Thread 21
hello from Thread 20
hello from Thread 19
hello from Thread 18
hello from Thread 17
hello from Thread 16
hello from Thread 15
hello from Thread 14
hello from Thread 13
hello from Thread 12
hello from Thread 11
hello from Thread 10
hello from Thread 9
hello from Thread 8
hello from Thread 7
hello from Thread 6
hello from Thread 5
hello from Thread 4
hello from Thread 3
hello from Thread 2
hello from Thread 1
hello from Thread-0
我无法弄清楚最后一个“来自线程-0的问候”来自何方,以及如何摆脱这一问题,因为问题仅从线程1到50询问。
谢谢

最佳答案

Thread-0是从main方法创建和启动的初始线程的名称,而不增加Task2中的线程计数器。
因此,要解决此问题,只需将初始线程启动为:

new Thread(new Task2(), "Thread "+ Task2.threadNo++).start();

关于java - 如何获得第一个线程0 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64995429/

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