stop這個方法將終止所有未結(jié)束的方法蛤育,包括run方法荷逞。當一個線程停止時候道伟,他會立即釋放所有他鎖住對象上的鎖迹缀。這會導致對象處于不一致的狀態(tài)。假如一個方法在將錢從一個賬戶轉(zhuǎn)移到另一個賬戶的過程中皱卓,
在取款之后存款之前就停止了裹芝。那么現(xiàn)在銀行對象就被破壞了。因為鎖已經(jīng)被釋放了娜汁。當線程想終止另一個線程的時候嫂易,它無法知道何時調(diào)用stop是安全的,
何時會導致對象被破壞掐禁。所以這個方法被棄用了怜械。你應該中斷一個線程而不是停止他。
suspend不會破壞對象傅事。但是缕允,如果你用一個suspend掛起一個有鎖的線程,那么在鎖恢復之前將不會被釋放蹭越。如果調(diào)用suspend的方法線程試圖取得相同的鎖障本,程序就會死鎖。
兩個方法都不推薦用响鹃,需要暫停線程一般用線程的sleep(),Object的wait()