gpt4 book ai didi

java - 为什么一个线程会阻止另一个线程运行?

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

我打算对我正在制作的游戏引擎中的每个声音使用线程。问题是,每当我创建一个具有 while(true) 语句的新线程时,另一个线程就会停止运行。

我做了一个类来测试这个,它只打印“再见”,而不是“你好”。我想知道如何让两个线程同时运行。

public class testor {
public static void main(String args[]){
testor test=new testor();
test.runTest();
}
class threadTest implements Runnable{

@Override
public void run() {
while(true){
System.out.println("goodbye");
}

}

}
public void runTest(){
threadTest test=new threadTest();
test.run();
while(true){
System.out.println("hello");
}
}
}

最佳答案

由于您正在执行 test.run(); 您只是调用该类的方法,但没有启动线程。

所以为了回答你的问题:没有这样的线程阻止另一个线程运行?因为你只有一个永远循环并打印消息的线程 System.out.println("goodbye");

如果该方法不会永远循环,它将返回到 runTest 方法,然后您将看到 System.out.println("hello");

摘要:

要启动线程,请使用 Thread::start方法而不是 run

关于java - 为什么一个线程会阻止另一个线程运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35975536/

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