首页 > 代码库 > 两种停止Thread的方式
两种停止Thread的方式
当你想要依据某些条件终结thread的时候,有两种最常见的方式。
设定标记
最常见停止thread的方式是设定某些标记来表示该thread应该要停止了。thread可以周期性地查询标记以判别它是否应该退出。如例:
package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { Worker work = new Worker(); work.start(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { work.setDone(Boolean.parseBoolean(br.readLine())); } catch (IOException e) { e.printStackTrace(); } } } class Worker extends Thread { private volatile boolean done = false; //注意这里使用了关键词:volatile @Override public void run() { int i = 0; while(!done) { System.out.println("number: " + i++); } } /*getter,setter*/ public boolean isDone() { return done; } public void setDone(boolean done) { this.done = done; } }
两种停止Thread的方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。