weixin_45146666
2021-05-11 11:31
采纳率: 75.9%
浏览 60
已采纳

java一个方法中两次调用同一个线程导致第二调用失效

 

如:现在又a,b,c三个方法。a方法中调用b和c方法,b和c方法又都同时调用一个线程,当然a方法的代码顺序执行b然后执行c。

我现在碰到一个问题,a方法走完后得到的反馈只有b方法的,c方法的提示成功但是没有反馈。而且a方法单独调用b方法或者c方法反馈都正常,这是什么问题?求大佬解惑并给点解决方案。

public static void a(){

   b();

   c();

};

public static void b(){

  调用线程()

};

public static void c(){

  调用线程()

}

 

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 记得我雨 2021-05-11 11:56
    已采纳

    不要设置线程为Daemon线程,java虚拟机中没有非Daemon线程时就会停止运行,不管Daemon线程是否执行完。

    已采纳该答案
    打赏 评论
  • 冰鸟飞鱼 2021-05-11 11:47

    最好把完整的代码贴一下 这样看不出来问题

    打赏 评论
  • lkj2016 2021-05-11 11:52

    b和c方法又都同时调用一个线程

    public static void c(){
      调用线程()
    
    }

    这个函数体内应该没有判断线程是否运行吧

    	private static Thread thread;
    
    	public static void main(String args[]) throws Exception {
    		thread = new Thread(() -> System.out.println("a"));
    		thread.start();
    		thread.start();
    	}

    这正常情况下不应该报错吗,你还跑起来了吗?

    打赏 评论

相关推荐 更多相似问题