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(){
调用线程()
}
答
不要设置线程为Daemon线程,java虚拟机中没有非Daemon线程时就会停止运行,不管Daemon线程是否执行完。
答
最好把完整的代码贴一下 这样看不出来问题
答
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();
}
这正常情况下不应该报错吗,你还跑起来了吗?