gpt4 book ai didi

java - 简单的Java并发线程——捕获开始和结束

转载 作者:行者123 更新时间:2023-12-02 05:20:04 24 4
gpt4 key购买 nike

我是否正确实现了这些 Java 线程?目标是有 10 个并发线程计算从 1 到(上限 22 + i)的总和。我试图识别名称并在运行线程时打印它,然后在线程退出时打印结果。目前,我以随机顺序同时打印所有结果,并且我不确定线程​​开始和结束时是否正确获取信息。

public class threads {
public static void main(String[] args) {
for(int i = 0; i < 10; i++) {
final int iCopy = i;
new Thread("" + i) {
public void run() {
int sum = 0;
int upperBound = 22;
int lowerBound = 1;
long threadID = Thread.currentThread().getId();

for (int number = lowerBound; number <= upperBound; number++){
sum = sum + number + iCopy;

}
System.out.println(threadID + " thread is running now, I and will compute the sum from 1 to " + (upperBound + iCopy) + ". The i is : " + iCopy);
System.out.println("Thread id #" + threadID + ", the "+ sum + " is done by the thread.");
}

}.start();
}
}
}

最佳答案

我已经执行了您的代码,并观察到在这种情况下所有线程都正常运行 10。由于线程是以随机顺序调用的,这就是为什么可能会看到这种行为,但我确信所有线程都可以正常运行并执行您所需的功能。

在输出中我看到 for 循环中的值应该从 0 到 9 开始,但这里即使这是随机的,可能是因为某些线程在执行时正在 hibernate 并让位于其他线程。

希望这有帮助谢谢。

关于java - 简单的Java并发线程——捕获开始和结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26581372/

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