1.为什么不推荐用 stop()和 suspend()


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







suspend不会破坏对象。但是,如果你用一个suspend挂起一个有锁的线程,那么在锁恢复之前将不会被释放。如果调用suspend的方法线程试图取得相同的锁,程序就会死锁。
 

相关文章:

  • 2021-09-13
  • 2021-05-04
  • 2022-12-23
  • 2022-12-23
  • 2021-09-22
  • 2021-12-29
  • 2021-10-04
  • 2021-10-02
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-02-11
  • 2021-09-25
  • 2022-01-09
  • 2022-12-23
  • 2021-11-23
相关资源
相似解决方案