为了账号安全,请及时绑定邮箱和手机立即绑定

怎么调出并发不确定性的效果

怎么调出并发不确定性的效果

炎炎设计 2019-03-12 14:15:35
class HelloWorld {    public static void main(String[] args) throws InterruptedException {        Thread myThread = new Thread() {            public void run(){                System.out.println("Hello from new Thread!");            }        };                myThread.start();        Thread.yield();                System.out.println("Hello from main Thread!");        myThread.join();    }}《七周七并发模型》作者说结果可能是结果可能一Hello from main Thread!Hello from new Thread!结果可能二Hello from new Thread!Hello from main Thread!为什么我的结果只有一。
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

可以用sleep:


class HelloWorld {

    public static void main(String[] args) throws InterruptedException {

        Thread myThread = new Thread() {

            public void run(){

                System.out.println("Hello from new Thread!");

            }

        };

        

        myThread.start();

        Thread.yield();

        Thread.sleep(100);

        System.out.println("Hello from main Thread!");

        myThread.join();

    }

}


查看完整回答
反对 回复 2019-04-17
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

  public static void main(String[] args) throws InterruptedException {

        Thread myThread = new Thread(){

            public void run(){

                try {

                    Thread.sleep(500);

                } catch (InterruptedException e) {

                    e.printStackTrace();

                }

                System.out.println("Hello from new Thread!");

            }

        };

        

        myThread.start();

        Thread.sleep(500);

        

        System.out.println("Hello from main Thread!");

        myThread.join();

    }

    

    

我把题主的yield()换成了sleep(),yield()方法只能让同优先级的线程有执行的机会。可能是主线程比子线程优先级高


查看完整回答
反对 回复 2019-04-17
  • 2 回答
  • 0 关注
  • 381 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信