好吧,我知道这很危险,我知道它被弃用了,而且我知道使用它会让小耶稣哭泣。我想我已经意识到调用它的含义并阅读this related question。
这是我的情景。我想测试一个数据处理库。它运行多个作业,每个线程一个。每个作业仅通过进程外排队系统与其他作业通信。否则,作业是独立的:线程之间没有共享状态,至少在我的代码库中没有。
我想测试一下,如果某个可怕的东西,比如OutOfMemoryError
或宇宙射线杀死VM会在作业的某个随机点发生,那么系统的其余部分就可以了。因此,我想在一个完全任意的点停止一个线程,并且杀死该线程不应该让处于未定义状态的其他线程可以访问资源。作业逻辑是我不想为了这个测试而妥协的框架的一部分,因此在整个作业代码中散布随机出口是不可行的。
这是Thread.stop()
的恰当用途吗?所以这不是一个XY问题,还有其他任何实用的方法来实现我的目标吗? (我想它可以通过字节码检测来完成,但我认为这将非常困难。)