美文网首页
线程的stop() 和suspend()

线程的stop() 和suspend()

作者: willcoder | 来源:发表于2019-06-07 01:17 被阅读0次

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


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


    两个方法都不推荐用,需要暂停线程一般用线程的sleep(),Object的wait()

    相关文章

      网友评论

          本文标题:线程的stop() 和suspend()

          本文链接:https://www.haomeiwen.com/subject/fygwtctx.html