如何停止一个正在运行的线程? 本帖最后由 qq4155300 于 2013-11-24 21:20:13 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 除了stop()之外,suspend()、resume()方法也被标示为"deprecated",这些方法如果您要达成相同的功能,您都必须自行实作,在将来新的Java版本中如果这些功能被实现,它也可能是新的接口,而不是使用现有的方法. 我也不知道,MyThread t=new MyThread(); t.start();这两句之间少了Thread t1=new Thread (t);然后用t1调用start()方法,t1是随意取得变量名.public void setStop(){ this.flag=false; } 这里面应该调用run()方法,run()添加处理的语句。////////////////////////////////////////////////////////////// public void run(){ while(flag){ System.out.println("执行任务中"); } break; } public void setStop(){ this.flag=false; run(); }具体我也不太清楚。你看看我写的有没有帮助。 你要停止的是当前正在执行的线程请用Thread.currentThread().stop()弄 stop()这个函数是老版本用的,现在好像不能用了吧。 写一个类似Constants.java的类,里面写一个静态成员变量flag,线程的循环体使用这个静态变量来控制是否继续执行,想要停的时候,从页面接收参数stop,把这个变量设置为false就自动退出来了。如果想执行任务中途停的话,就在循环体里面再判断flag,然后break。 stop()这个函数是老版本用的,现在好像不能用了吧。过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗 stop()这个函数是老版本用的,现在好像不能用了吧。过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。 stop()这个函数是老版本用的,现在好像不能用了吧。过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。是不能用还是不准用啊?我刚才都试了,能行啊兄弟,我jdk是1.6的 你的方法其实是可行的,不过需要一个Map来管理,不然你不知道该停哪个线程。Map<String,ITask> taskPool = new HashMap<String,ITask>();ITask task1 = new ITask();//..taskPool.put("task-1", task1);taskPool.get("task-1").stopTask(); stop()这个函数是老版本用的,现在好像不能用了吧。过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。是不能用还是不准用啊?我刚才都试了,能行啊兄弟,我jdk是1.6的是不建议采用,有安全隐患 stop()这个函数是老版本用的,现在好像不能用了吧。过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。是不能用还是不准用啊?我刚才都试了,能行啊兄弟,我jdk是1.6的是不建议采用,有安全隐患还有,显示已过时,也是1.6 stop()这个函数是老版本用的,现在好像不能用了吧。过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。是不能用还是不准用啊?我刚才都试了,能行啊兄弟,我jdk是1.6的是不建议采用,有安全隐患还有,显示已过时,也是1.6是啊,不过现在退出线程的方法都用退出标识取代了,那些方法不安全也不优雅 用那个Thread实例的interrupt方法呢? String action=request.getParameter("action"); MyThread t=new MyThread(); //这个t最好是设置成类静态成员,这样保证每次请求进来的操作的都是相同的线程if(action.equals("start")){ t.start();}else if(action.equals("stop")){ t.setStop();} eclipse j2ee juno界面太恶心了。 ehcache spring 缓存配置问题 求 javascript按钮向服务器提交数据 使用JNI时,dll不只是工具类,而且载有数据。多实例的问题. 使用axis搭建WebService 如何传递参数? 阐述您所了解的Java开源软件 关于jsp文件上传问题问题 还是中文问题!!!!! 给一个简单的使用POI例子和使用步骤好吗? 基础性问题,请问实行EJB都需要那些必要的条件。 java项目中外网访问内网数据库的问题 java.lang.NullPointerException 异常
public void setStop(){
this.flag=false;
} 这里面应该调用run()方法,run()添加处理的语句。
//////////////////////////////////////////////////////////////
public void run(){
while(flag){
System.out.println("执行任务中");
}
break;
}
public void setStop(){
this.flag=false;
run();
}具体我也不太清楚。你看看我写的有没有帮助。
请用Thread.currentThread().stop()弄
过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗
过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗
我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。
过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗
我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。是不能用还是不准用啊?
我刚才都试了,能行啊兄弟,我jdk是1.6的
//..taskPool.put("task-1", task1);taskPool.get("task-1").stopTask();
过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗
我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。是不能用还是不准用啊?
我刚才都试了,能行啊兄弟,我jdk是1.6的
是不建议采用,有安全隐患
过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗
我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。是不能用还是不准用啊?
我刚才都试了,能行啊兄弟,我jdk是1.6的
是不建议采用,有安全隐患
还有,显示已过时,也是1.6
过期的方法只是不建议用,并不代表jvm不认识它当然stop也最好不用,自己实现类似的退出线程的方式呗
我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。是不能用还是不准用啊?
我刚才都试了,能行啊兄弟,我jdk是1.6的
是不建议采用,有安全隐患
还有,显示已过时,也是1.6
是啊,不过现在退出线程的方法都用退出标识取代了,那些方法不安全也不优雅
String action=request.getParameter("action");
MyThread t=new MyThread(); //这个t最好是设置成类静态成员,这样保证每次请求进来的操作的都是相同的线程
if(action.equals("start")){
t.start();
}else if(action.equals("stop")){
t.setStop();
}