[ruby-list:50486] Re: [質問] Thread.stop が無い?
From:
<yamataka@...08.itscom.net>
Date:
2017-02-17 05:03:00 UTC
List:
ruby-list #50486
山口です。
助田さん、ご教示ありがとうございます。
> 参照先のドキュメントを確認すれば、 目次の
> 「特異メソッド」の欄に stop があり
> 「インスタンスメソッド」の欄には、stop がない
> ことがわかると思います。
マニュアルを参照する際、特異メッソドとインスタンスメッソドを意識していま
せんでした。
勉強になりました。
> Thread.stop
>
> というコードであれば Thread クラスの
> 特異メソッドである stop を実行しようとします。
> この場合は、エラーになりません。
...
> ssdp.stop
>
> というコードだと Thread クラスのインスタンスメソッド stop を
> 実行しようとすることになります。
> ですが、Thread にはインスタンスメソッドの stop が存在しない
> ためエラーになります。
理解できました。
ご教示ありがとうございます。
ssdp = Thread.new {
loop do
puts "In ssdp thread"
sleep(3)
end
}
loop do
puts "In main thread"
# ssdp スレッドを、main threadから停止したい場合にはどうすればよい?
# Thread.stop だと main threadが停止するので、
sleep(5)
ssdp.run # ssdp thread再開
end
main threadから、ssdp の thread を停止するには、どのように記述すれば
よいかご教示いただけますでしょうか?