这个问题令人困惑,但这就是我想做的:
public class Main
{
MyClass instance = new MyClass();
Thread secondThread = new Thread(instance);
public static void main()
{
secondThread.start();
//here i want to call foo(), but be processed by secondThread thread(not the Main thread)
}
}
public class MyClass implements Runnable
{
@Override
public void run()
{
}
public void foo()
{
System.out.println("foo");
}
}
如果我使用“instance.foo();”它将由主线程处理。
最佳答案
Runnable
的想法是它是一段合并的代码,可以由它选择的任何上下文(在本例中为线程)内的其他东西执行。第二个线程将在启动时调用 run()
方法,因此您可能希望在 MyClass.run() 中调用
方法。您不能从主线程任意决定第二个线程现在将放弃它在 foo()
run()
方法中所做的任何事情并开始处理 foo()
.
关于java - 由runnable线程执行的runnable外部runnable实例的调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8012644/