アイテムを追加、取得、または削除するために再帰的な方法を使用しようとしているツリー構造があります。イテレータで見つけたすべての子ノードに新しいスレッドを導入できるようにしたいと考えています。現在、ノードを呼び出すときにノードを再帰メソッドに渡します。スレッドを開始し、そのスレッドにそのメソッドを呼び出すように指示できるようにしたいと考えています。新しいスレッド、thread.callMethod() と言うのと同じようなことをするにはどうすればよいでしょうか? どうやらRunnableインターフェースとrunメソッドが必要ですか? ただし、これは必要以上に複雑なようです (メソッド名は既に持っています)。run(..) を使用してこれを行う良い方法を知っている人はいますか、または run(..) を使用せずにこれを行うより良い方法を知っている人はいますか? ありがとう。
回答ありがとうございます。新しいスレッドで実行されているノードの新しいインスタンスを取得する必要があると考えていましたが、そうではありません。ノードはメモリ内のスペースを占有するだけで、スレッドはメモリ内のインスタンスで実行されるメソッド コードへの参照です (私の CS 302 TA は、私の頭の中で既に私と意見が一致していません)。だから..私は列挙型について考えていましたが、インスタンス化中にすべてのノードを別々のスレッドで実行する必要があるかもしれないと考えていました。
言い換えると、
public class TreeMethods implements Runnable
{
...
run(.. node, .. params, .. enum)
{
switch(enum)
case(add)
{
myThreadInstanceMethod(node);
}
...
}
myThreadInstanceMethod(..) {..}
}
ありがとう。この質問をしているとは知りませんでしたが、スレッド管理の設計プロセスが大幅に簡素化されました。