java - 由runnable线程执行的runnable外部runnable实例的调用方法

标签 java multithreading methods

这个问题令人困惑,但这就是我想做的:

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/

相关文章:

c# - DebugDiag 消息线程似乎没有等待远程服务器响应

java - 这种线程长计算的实现是否正确?

java - springboot线程数不断增加

java - 在另一个方法中使用主要方法中的变量

java - 如何将内容写入文件

java - JQgrid 和 Java

java - 将 .class 或 .java 文件作为 Eclipse 项目中的资源是否有任何限制?

java - Future.get() 和 InterruptedException 异步线程

java - 索引越界 : 1 (java) when passing a string paramater through a method

c++ - 应该使用什么优雅的方法回调设计?