我有一个java类
SomeClass implements Runnable
其中有一个方法display()。
当我创建这个类的线程时
Thread thread1 = new Thread(new SomeClass());
现在我如何使用线程实例调用display()方法?
答案 0 :(得分:11)
您最终会在start()
上致电thread1
。
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();
注意:示例是为了说明这个概念,可能存在语法错误。
如果你没有使用join(),正如安德鲁评论的那样,结果可能会有不一致。
答案 1 :(得分:5)
如果要从新线程调用display,则需要在run run方法中。
如果你想从调用线程调用它,那么创建一个新对象,将其传递给你的新线程,然后从你的下降线程中调用display
SomeClass sc = new SomeClass();
new Thread(sc).start();
sc.display()
答案 2 :(得分:3)
简单授权:
public class SomeClass implements Runnable {
@Override
public void run() {
display();
}
public void display() {
//...
}
}