これは実際にドメインモデリングに関する質問だと思います。
デバッグやパフォーマンスの出力を追加するなど、スレッドが動作する方法を拡張/強化したい場合は、何をしているかには何も問題はありません。
アクティブオブジェクトを使用してドメイン内のいくつかの概念をモデル化したいとします。その場合、Rubyの標準的なアプローチは、ドメインモデルを撓ませることなくこれを達成できるので、より優れています。
継承は、実際にはIS_A関係をモデル化するためにのみ使用してください。このための標準のルビコードは、このソリューションをきれいに包みます。
あなたのオブジェクトをアクティブにするには、それはいくつかの方法で
Class MyClass
...
def run
while work_to_be_done do
some_work
end
end
...
end
threads = []
# start creating active objects by creating an object and assigning
# a thread to each
threads << Thread.new { MyClass.new.run }
threads << Thread.new { MyOtherClass.new.run }
... do more stuff
# now we're done just wait for all objects to finish ....
threads.each { |t| t.join }
# ok, everyone is done, see starships on fire off the shoulder of etc
# time to die ...
Rubyの標準的なアプローチは何ですか? Threadオブジェクトにコードブロックを渡すだけですか? –
はい - Thread.new {do_stuff}は私が見た最も一般的なアプローチです。 –
私の応答をアクティブオブジェクトの例で更新しました –