关闭线程

tech2022-12-09  109

终止线程

stop方法,已经被弃用,无法预期

interrupt

interrupt方法其作用是中断此线程(此线程不一定是当前线程,而是指调用该方法的Thread实例所代表的线程),但实际上只是给线程设置一个中断标志,线程仍会继续运行。 在run方法里调用isInterrupted()方法

public static void main(String[] args) { Thread thread = new Thread() { @Override public void run() { super.run(); for (int i = 0; i < 100000; i++) { if(Thread.interrupted()){ System.out.println("run: interrupted stop"); return; } try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); System.out.println("run: sleep stop"); return; } System.out.println("number" + i); } } }; thread.start(); try { Thread.sleep(4000); } catch (InterruptedException e) { e.printStackTrace(); } thread.interrupt(); }

在4秒后for循环里会捕捉到打断异常,如果不处理代码会继续向下执行

最新回复(0)