iyuks 2021-04-13 11:29 采纳率: 86.2%
浏览 21
已结题

这里为什么只打印一个1呢?在junit里测试

public class AlternateTest {

  static   Object o = new Object();
    //交替执行
    @Test
    public void test1() throws InterruptedException {
        new Thread(() -> {
            synchronized (o) {
                while (true){
                    try {
                        o.notify();
                        Thread.sleep(100);
                        System.out.println("1");
                        o.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                }
            }
        }).start();
        Thread.sleep(100);
        new Thread(()->{

            synchronized (o){
                try {
                    while (true){
                        o.notify();
                        Thread.sleep(100);
                        System.out.println("2");
                        o.wait();
                    }
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }}
  • 写回答

2条回答 默认 最新

  • 张小帅和刘美美 2021-04-13 12:36
    关注


    当Thread了新的线程后,Junit单元测试 在主线程运行结束后就关闭了,而不会等子线程运行结束。而main函数就不存在这个问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月24日
  • 已采纳回答 9月16日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器