[過去ログ] マルチスレッドプログラミング相談室 (986レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
2
(4): 2001/08/09(木)17:33 AAS
ブロードキャストプログラミング相談室
70
(1): 01/10/08 22:42 AAS
>1: protectedなメソッドが継承クラスでsynchronizedになっちゃった。
>という状況で何が起こるか考えてみよう。
クラスを使うがわの認識不足でバグがでる可能性がある

>2: synchronizedで待ってるスレッドを中断させることができるか
>できないか、について考えてみよう。
プログラミングテクニックが必要だけど、できる
80: 01/10/10 10:53 AAS
元の問題は、
>2: synchronizedで待ってるスレッドを中断させることができるか
だろ。
この意味は、synchronizedメソッドまたはブロックに入るために、
ロックの獲得を試みて、得られなく(他のスレッドが持っている)、
待っている、ということだよね。
こんな状況で、どうやってwait/notifyとかできるのよ。
86: 01/10/10 21:04 AAS
>1: protectedなメソッドが継承クラスでsynchronizedになっちゃった
そもそも設計ミスを言語仕様のせいにしてるところが問題なのでは?

>2: synchronizedで待ってるスレッドを中断させることができるか
できないけど
なんの問題もない

これが問題だと思ってるなら、才能が無いと思って
プログラマーやめた方がいいと思うよ
98
(2): 01/10/14 00:44 AAS
>>94
>2についてはsynchronizedで待っているスレッドは原則として中断できない。
>(Thread#stopで停止はできるが、これは危険!)
Thread#stopで、lockの獲得を待っているスレッドを停止できる、とは言えないのでは?
例えば、スレッド1がロック1を持ち、スレッド2がロック2を持っていて、
スレッド1がロック2を獲得しようとして、同時にスレッド2がロック1を獲得しようと
する、いわゆるデッドロックの状態で、別のスレッドからスレッド1のstopを呼んでも、
スレッド1は停止(中断)しない。結局、デッドロックは解消しない。
元の問いが、synchronizedで待っているスレッドを中断する、ということだから、これは
stopでもできないというのが正解では?
mutexなどの利用については、その通りだと思うけど。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.031s