相关疑难解决方法(0)

这是饥饿吗?

我找到了一段线程似乎饿死的代码.下面是一个简化的例子.这是饥饿的一个例子吗?线程没有终止的原因是什么?

注意:将睡眠状态更改为1有时会导致终止.注释掉的Thread.yield()可以解决问题(对我而言).

public class Foo {

    public static boolean finished = false;

    public static void main(String[] args) {

          Runnable worker = new Runnable() {

                 @Override
                 public void run() {

                      try {
                           Thread.sleep(10);
                      } catch (InterruptedException e) {
                          // TODO Auto-generated catch block
                          e.printStackTrace();
                      }

                      finished = true;
                 }
            };

            new Thread(worker).start();

            while (!finished) {
//          Thread.yield();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading

2
推荐指数
1
解决办法
1312
查看次数

标签 统计

java ×1

multithreading ×1