原文:【线程篇】stop() 和suspend()

.为什么不推荐用 stop 和 suspend stop这个方法将终止所有未结束的方法,包括run方法。当一个线程停止时候,他会立即释放所有他锁住对象上的锁。这会导致对象处于不一致的状态。假如一个方法在将钱从一个账户转移到另一个账户的过程中,在取款之后存款之前就停止了。那么现在银行对象就被破坏了。因为锁已经被释放了。当线程想终止另一个线程的时候,它无法知道何时调用stop是安全的,何时会导致对象 ...

2013-07-02 19:41 0 3106 推荐指数:

查看详情

线程stop()方法和suspend方法为什么不建议使用?

线程stop()方法和suspend方法为什么不建议使用? 答:不建议使用这2种方法的原因,是因为使用stop方法会强行终止线程的所有锁定,如果对象处于一种不连贯的状态,那么损坏的对象对其他线程可见,这有可能导致不安全的操作。 suspend方法可能会发生死锁,所以也不建议使用 ...

Sat Feb 16 07:17:00 CST 2019 0 842
为何stop()和suspend()方法不推荐使用(转)

stop()方法作为一种粗暴的线程终止行为,在线程终止之前没有对其做任何的清除操作,因此具有固有的不安全性。 用Thread.stop()方法来终止线程将会释放该线程对象已经锁定的所有监视器。如果以前受这些监视器保护的任何对象都处于不连贯状态,那么损坏的对象对其他线程可见,这有可能导致 ...

Wed Jul 25 06:58:00 CST 2018 0 1141
被废弃的 Thread.stop, Thread.suspend, Thread.resume 和Runtime.runFinalizersOnExit

最近学习多线程的知识,看到API里说这些方法被废弃了,就查了一下原因 Thread.stop 这个方法会解除被加锁的对象的锁,因而可能造成这些对象处于不一致的状态,而且这个方法造成的ThreadDeath异常不像其他的检查期异常一样被捕获。 可以使用interrupt方法代替。事实上 ...

Thu Aug 25 22:44:00 CST 2016 1 1564
JAVA多线程线程的挂起与恢复(suspend方法与resume方法)

一,介绍 本文讨论JAVA多线程中,使用 thread.suspend()方法暂停线程,使用 thread.resume()恢复暂停的线程 的特点。 先介绍二个关于线程的基本知识: ①线程的执行体是run()方法里面的每一条语句,main线程执行的则是main()方法里面的语句 ...

Sun May 01 06:53:00 CST 2016 0 6373
Java多线程系列——过期的suspend()挂起、resume()继续执行线程

简述 这两个操作就好比播放器的暂停和恢复。 但这两个 API 是过期的,也就是不建议使用的。 不推荐使用 suspend() 去挂起线程的原因,是因为 suspend() 在导致线程暂停的同时,并不会去释放任何锁资源。其他线程都无法访问被它占用的锁。直到对应的线程执行 resume() 方法 ...

Mon Mar 06 00:59:00 CST 2017 0 9064
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM