作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我打算对我正在制作的游戏引擎中的每个声音使用线程。问题是,每当我创建一个具有 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/
我是一名优秀的程序员,十分优秀!