java - 创建线程对象后调用实现runnable的Java类的方法

标签 java multithreading runnable producer-consumer

我有一个java类

SomeClass implements Runnable

其中有一个方法 display()。

当我创建这个类的线程时
Thread thread1 = new Thread(new SomeClass());

现在如何使用线程实例调用 display() 方法?

最佳答案

您最终将调用 start()thread1 .
SomeClass将覆盖 run()又需要调用 display() 的方法方法。

当您调用 start() , SomeClass() 的运行方法将调用对象并执行 display() 方法。

例子:

public class SomeClass implements Runnable {
    private List yourArrayList;
    public void run() {
        display();
    }

    public void display() {
        //Your display method implementation.
    }
   public List methodToGetArrayList()
   {
    return  yourArrayList;
   }
}

更新:
SomeClass sc = new SomeClass()
Thread thread1 = new Thread(sc);
thread1.join();
sc.methodToGetArrayList();

注意:示例是为了说明概念,可能存在语法错误。

如果您不使用 join(),正如 Andrew 所评论的那样,结果可能会不一致。

关于java - 创建线程对象后调用实现runnable的Java类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13370022/

相关文章:

java - 尝试在空对象引用上调用虚拟方法 'int java.lang.String.length()'

java - executorService.submit(Runnable) 返回的 future 对象是否包含对可运行对象的任何引用?

java - Openshift 部署 F8 : Cannot access cluster for detecting mode: sun. security.validator.ValidatorException

java - 如何在全新线程上启动某个类的每个实例?

java - JAX-WS 如何在 weblogic 中隐藏 WSDL?

java - 当我以静态方式同步块(synchronized block)调用 wait() 时,为什么 Java 抛出 java.lang.IllegalMonitorStateException?

java - 寻找在多线程平台上创建用户名的好方法

java - 如何使用来自 URL 的数据填充 javaFX 中的 ListView?

android - 如何将一个runnable放入bundle中?

java - 匿名可运行类中的变量是否始终线程安全?