黑马程序员技术交流社区
标题:
stop()和suspend()方法为何不推荐使用
[打印本页]
作者:
肖发腾
时间:
2012-3-29 19:53
标题:
stop()和suspend()方法为何不推荐使用
stop()和suspend()方法为何不推荐使用?知道它们不推荐使用,具体原因是什么呢?
作者:
李增强
时间:
2012-3-29 23:36
stop这个方法将终止所有未结束的方法,包括run方法。当一个线程停止时候,他会立即释放所有他锁住对象上的锁。这会导致对象处于不一致的状态。假如一个方法在将钱从一个账户转移到另一个账户的过程中,在取款之后存款之前就停止了。那么现在银行对象就被破坏了。因为锁已经被释放了。当线程想终止另一个线程的时候,它无法知道何时调用stop是安全的,何时会导致对象被破坏。所以这个方法被弃用了。你应该中断一个线程而不是停止他。
suspend不会破坏对象。但是,如果你用一个suspend挂起一个有锁的线程,那么在锁恢复之前将不会被释放。如果调用suspend的方法线程试图取得相同的锁,程序就会死锁。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2