- Java code
Thread t = new Thread(){ public void run(){ Thread th1 = new Thread(); Thread th2 = new Thread(); Thread th3 = new Thread(); Thread th4 = new Thread(); //这四个线程分别运行5秒 try { th1.start(); th1.join(); th2.start(); th2.join(); th3.start(); th3.join(); th4.start(); th4.join(); } catch (InterruptedException e) { e.printStackTrace(); } } }; t.start();
问一下:总线程t启动后,当运行th2过程中 怎样才可以把总线程t立即停止 我调用t.interrupt() 或者t.yield()语句后,它还是会继续执行th3线程和th4线程。
但是当th4线程运行时候 我去调用t.interrupt()语句 t线程就会停止运行。
------解决方案--------------------------------------------------------
可能是你th2实现的有问题,你可以把完整的代码贴出来看看。
th2.start();
th2.join();
当线程t block时,th2调t.interrupte(), 线程t会抛InterruptedException,
th3,th4应该没有机会执行.