多線程中stop()方法和suspend方法為什么不建議使用? 答:不建議使用這2種方法的原因,是因為使用stop方法會強行終止線程的所有鎖定,如果對象處於一種不連貫的狀態,那么損壞的對象對其他線程可見,這有可能導致不安全的操作。 suspend方法可能會發生死鎖,所以也不建議使用 ...
.為什么不推薦用 stop 和 suspend stop這個方法將終止所有未結束的方法,包括run方法。當一個線程停止時候,他會立即釋放所有他鎖住對象上的鎖。這會導致對象處於不一致的狀態。假如一個方法在將錢從一個賬戶轉移到另一個賬戶的過程中,在取款之后存款之前就停止了。那么現在銀行對象就被破壞了。因為鎖已經被釋放了。當線程想終止另一個線程的時候,它無法知道何時調用stop是安全的,何時會導致對象 ...
2013-07-02 19:41 0 3106 推薦指數:
多線程中stop()方法和suspend方法為什么不建議使用? 答:不建議使用這2種方法的原因,是因為使用stop方法會強行終止線程的所有鎖定,如果對象處於一種不連貫的狀態,那么損壞的對象對其他線程可見,這有可能導致不安全的操作。 suspend方法可能會發生死鎖,所以也不建議使用 ...
stop()方法作為一種粗暴的線程終止行為,在線程終止之前沒有對其做任何的清除操作,因此具有固有的不安全性。 用Thread.stop()方法來終止線程將會釋放該線程對象已經鎖定的所有監視器。如果以前受這些監視器保護的任何對象都處於不連貫狀態,那么損壞的對象對其他線程可見,這有可能導致 ...
java5 以前, 有如下兩種:第一種:new Thread(){}.start();這表示調用 Thread 子類對象的 run 方法, new Thread(){}表示一個Thread 的匿名子類 ...
java5 以前, 有如下兩種:第一種:new Thread(){}.start();這表示調用 Thread 子類對象的 run 方法, new Thread(){}表示一個Thread 的匿名子類 ...
TThread在Classes單元里的聲明如下 type TThread = class private FHandle: THandle; F ...
最近學習多線程的知識,看到API里說這些方法被廢棄了,就查了一下原因 Thread.stop 這個方法會解除被加鎖的對象的鎖,因而可能造成這些對象處於不一致的狀態,而且這個方法造成的ThreadDeath異常不像其他的檢查期異常一樣被捕獲。 可以使用interrupt方法代替。事實上 ...
一,介紹 本文討論JAVA多線程中,使用 thread.suspend()方法暫停線程,使用 thread.resume()恢復暫停的線程 的特點。 先介紹二個關於線程的基本知識: ①線程的執行體是run()方法里面的每一條語句,main線程執行的則是main()方法里面的語句 ...
簡述 這兩個操作就好比播放器的暫停和恢復。 但這兩個 API 是過期的,也就是不建議使用的。 不推薦使用 suspend() 去掛起線程的原因,是因為 suspend() 在導致線程暫停的同時,並不會去釋放任何鎖資源。其他線程都無法訪問被它占用的鎖。直到對應的線程執行 resume() 方法 ...