如何用一个线程杀死其它线程? 我想要有一个主程序,建立了两个线程,这个两个线程还可能建立其它的线程。主程序建立线程后,保持等待用户输入状态,如果用户输入END,则停止另外两个线程,然后主程序结束。有没有朋友,能给点以上代码的小片段,给我一个提示啊,没弄过线程// 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 运行结束后 java不是会自动释放掉 线程么?那样的话运行停止就可以了。不知道对不对不对的话 看过就忘了吧 呵呵 输入完成后,System.exit(0),就可以了。 在主线程内设定一个标志位volatile boolean bStop = false;当用户输入end后 bStop = true;然后在两外两个线程中的while循环中检查bStop的值, if( bStop ) 则跳出while循环, 线程函数结束了,线程的生命期也就结束了 public class ThreadTest{public static void main(){ worker worker1 = new worker("thread1"); worker worker2 = new worker("thread2"); worker1.start(); worker2.start(); BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); String enter = null; while(true){ try{ enter = input.readLine(); }catch(IOException e){ System.out.println(e); } if( enter.equals("end")){ worker1.setFlag(); worker2.setFlag(); break; }else if( enter.equals("***")){ //do sth }else{ ...... } } }}class worker extends Thread{ private String name; private boolean bStopped = false; public worker(String name){ System.out.println("create Thread: "+name) ; } public synchronized void setFlag(){ bStopped = true; } public void run(){ while(true){ //do something else if( bStopped ) break; } }} JBOSS里面,两个EAR里面不可以有同名的EJB? 参数是 JButton ...jb?高手可以解答一下吗? 完数代码问题 java基础题关于StringBuffer,求教 字符串读取格式问题 多线程问题 关于package 的问题 check the best java forum I've ever seen!!! j2sdkee中的初级问题 请问:在配置jdk中classpath和path分别是什么意思?谢谢!! 哪位好心人把 csdn会员的ID写出来,帮帮小弟注册阿! 请教:Swing里哪种容器能显示XHTML?
那样的话运行停止就可以了。
不知道对不对
不对的话 看过就忘了吧 呵呵
volatile boolean bStop = false;当用户输入end后 bStop = true;然后在两外两个线程中的while循环中检查bStop的值, if( bStop ) 则跳出while循环, 线程函数结束了,线程的生命期也就结束了
public class ThreadTest{
public static void main(){
worker worker1 = new worker("thread1");
worker worker2 = new worker("thread2");
worker1.start();
worker2.start(); BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String enter = null;
while(true){
try{
enter = input.readLine();
}catch(IOException e){
System.out.println(e);
}
if( enter.equals("end")){
worker1.setFlag();
worker2.setFlag();
break;
}else if( enter.equals("***")){
//do sth
}else{
......
}
}
}
}class worker extends Thread{
private String name;
private boolean bStopped = false; public worker(String name){
System.out.println("create Thread: "+name) ;
} public synchronized void setFlag(){
bStopped = true;
}
public void run(){
while(true){
//do something else
if( bStopped ) break;
}
}
}