Java多线程--1--stop方法

Java 多线程基础 – stop()方法

stop方法:强制停止一个正在运行的线程,无论此时线程是何种状态。
stop方法在停止线程时需要自行指定线程退出逻辑,否则线程会立即退出,不做任何清理操作,非常不安全,会造成数据不一致问题。

此处引用API的介绍
该方法具有固有的不安全性。用 Thread.stop 来终止线程将释放它已经锁定的所有监视器(作为沿堆栈向上传播的未检查 ThreadDeath 异常的一个自然后果)。
如果以前受这些监视器保护的任何对象都处于一种不一致的状态,则损坏的对象将对其他线程可见,这有可能导致任意的行为。
stop 的许多使用都应由只修改某些变量以指示目标线程应该停止运行的代码来取代。
目标线程应定期检查该变量,并且如果该变量指示它要停止运行,则从其运行方法依次返回。
如果目标线程等待很长时间(例如基于一个条件变量),则应使用 interrupt 方法来中断该等待。

以下展示了对于写入文件线程使用Stop会立即关闭线程,不会等待任务结束

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class StopDemo {
   
  public static void main(String[] args

你可能感兴趣的:(Java并发实现原理学习,多线程,java,并发编程)