我有一个树结构,我正在尝试使用递归方法来添加、获取或删除项目。我希望能够为使用迭代器找到的每个子节点引入一个新线程。我目前在调用它时将节点传递给递归方法。我希望能够启动一个线程并告诉该线程调用该方法。我将如何做类似于说新线程 thread.callMethod() 的事情?我显然需要一个 Runnable 接口和一个运行方法?然而,这似乎使事情变得比必要的复杂得多(我已经有了方法名称)。有谁知道使用 run(..) 的好方法,或者有谁知道不使用 run(..) 的更好方法。谢谢。
谢谢您的回答。我一直在想我需要获得一个在新线程上运行的节点的新实例,但事实并非如此。节点只占用内存空间,线程引用了在内存中的实例上执行的方法代码(我的 CS 302 TA 在我的脑海中已经不同意我的看法)。所以..我一直在考虑枚举,但我在想我可能需要在实例化期间以某种方式让我的所有节点在单独的线程上运行,或者让方法实际编写在实现可运行的新类中。
换句话说,
public class TreeMethods implements Runnable
{
...
run(.. node, .. params, .. enum)
{
switch(enum)
case(add)
{
myThreadInstanceMethod(node);
}
...
}
myThreadInstanceMethod(..) {..}
}
谢谢。我不知道我在问这个问题,但是您大大简化了我的线程管理设计过程。