如何停止一个正在运行的线程?
--------------------编程问答-------------------- 除了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。 --------------------编程问答--------------------
过期的方法只是不建议用,并不代表jvm不认识它
当然stop也最好不用,自己实现类似的退出线程的方式呗
--------------------编程问答--------------------
你要停止的是当前正在执行的线程
请用Thread.currentThread().stop()弄
stop()这个函数是老版本用的,现在好像不能用了吧。
过期的方法只是不建议用,并不代表jvm不认识它
当然stop也最好不用,自己实现类似的退出线程的方式呗
我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。 --------------------编程问答--------------------
写一个类似Constants.java的类,里面写一个静态成员变量flag,线程的循环体使用这个静态变量来控制是否继续执行,想要停的时候,从页面接收参数stop,把这个变量设置为false就自动退出来了。如果想执行任务中途停的话,就在循环体里面再判断flag,然后break。
就这样搞 --------------------编程问答--------------------
你要停止的是当前正在执行的线程
请用Thread.currentThread().stop()弄
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();
--------------------编程问答--------------------
你要停止的是当前正在执行的线程
请用Thread.currentThread().stop()弄
stop()这个函数是老版本用的,现在好像不能用了吧。
过期的方法只是不建议用,并不代表jvm不认识它
当然stop也最好不用,自己实现类似的退出线程的方式呗
我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。
是不能用还是不准用啊?
我刚才都试了,能行啊兄弟,我jdk是1.6的
是不建议采用,有安全隐患 --------------------编程问答--------------------
你要停止的是当前正在执行的线程
请用Thread.currentThread().stop()弄
stop()这个函数是老版本用的,现在好像不能用了吧。
过期的方法只是不建议用,并不代表jvm不认识它
当然stop也最好不用,自己实现类似的退出线程的方式呗
我是看一个视频教程上的,那上面查看jdk API时,显示的不能用,讲课老师也讲不能用了,嘿嘿。
是不能用还是不准用啊?
我刚才都试了,能行啊兄弟,我jdk是1.6的
是不建议采用,有安全隐患
还有,显示已过时,也是1.6 --------------------编程问答--------------------
你要停止的是当前正在执行的线程
请用Thread.currentThread().stop()弄
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();
}
写一个类似Constants.java的类,里面写一个静态成员变量flag,线程的循环体使用这个静态变量来控制是否继续执行,想要停的时候,从页面接收参数stop,把这个变量设置为false就自动退出来了。如果想执行任务中途停的话,就在循环体里面再判断flag,然后break。
这个可行
补充:Java , Java EE