调用Java类的方法,该类在创建线程对象后实现runnable
我有一个java类调用Java类的方法,该类在创建线程对象后实现runnable,java,multithreading,runnable,producer-consumer,Java,Multithreading,Runnable,Producer Consumer,我有一个java类 SomeClass implements Runnable 它有一个display()方法 当我创建这个类的线程时 Thread thread1 = new Thread(new SomeClass()); 现在我如何使用线程实例调用display()方法 您将在thread1上调用start() SomeClass将重写run()方法,该方法反过来需要调用display()方法 这样,当您调用start()时,将调用SomeClass()对象的run方法,并执行disp
SomeClass implements Runnable
它有一个display()方法
当我创建这个类的线程时
Thread thread1 = new Thread(new SomeClass());
现在我如何使用线程实例调用display()方法 您将在
thread1
上调用start()
SomeClass
将重写run()
方法,该方法反过来需要调用display()
方法
这样,当您调用start()
时,将调用SomeClass()
对象的run方法,并执行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();
注意:示例是为了说明该概念,可能存在语法错误
如Andrew所言,如果不使用join(),结果可能不一致。简单委派:
public class SomeClass implements Runnable {
@Override
public void run() {
display();
}
public void display() {
//...
}
}
如果您想从新线程调用display,那么它需要在您的run方法中 如果要从调用线程调用它,然后创建一个新对象,将其传递到新线程,然后从下降线程调用display
SomeClass sc = new SomeClass();
new Thread(sc).start();
sc.display()
调用Run方法并在其中执行循环,但我正在SomeClass中的ArrayList中存储执行期间的所有信息,我需要获取该ArrayList。非常感谢您的支持。瓦利:不客气。享受编码。若答案对你们有帮助,别忘了接受。我在等着接受。他们还需要5分钟来确认我不是垃圾邮件:)…这将导致访问问题。在访问列表之前,需要等待线程完成。最好使用异步方法并传递回调。会调用Run方法并在其中执行循环,但我将在执行期间将所有信息存储在获取该ArrayList所需的SomeClass中的ArrayList中。非常感谢您的支持。我就是想这样。