[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] JDK1.2でのThread.stopを調べていて
高橋(徹)です。
有名な話かもしれませんが、JDK1.2ではThreadクラスのstop(), suspend(),
resuem()が
deprecated(今後はなるべく使わない方がいい?)メソッドになっています。
ひと昔前のAppletプログラミングでは、けっこうThread.stop()を使っていましたが
、
それじゃだめなようですね。
JDK1.2のドキュメント(guide/misc/の中)にも説明がありました。そのサンプルコ
ードで
private volatile Thread blinker;
:
public void run() {
Thread thisThread = Thread.currentThread(); // ここの行がなぜ必要?
while(blinker == thisThread) {
// 別スレッドの処理
}
}
:
public void stop() {
blinker = null;
}
別スレッドの処理を終えるときにblinkerをnullにすればrun()が終わるのは分るの
ですが、
run()メソッドの最初の行でなぜcurrentThread()を取得してblinkerと比較させてい
るのか
分かりませんでした。自分で書くなら、
while(blinker != null) {
と書いてしまいますが。
#次回読書会は、ちょうどスレッドの話題ですね。
#ですが、今月(3月:March)はおりしも「デス・マーチ」・・・
------
Toru Takahashi
torutk@xxxxxxxxxx
NIFTY: GHE00470
http://www.alles.or.jp/~torutk/