我需要从后台线程调用此类。
ChartPenData.main(arguments);
我该怎么做?
Thread thread = new Thread();
thread = ChartPenData.main(arguments);
thread.run();
答案 0 :(得分:2)
new Thread() {
public void run() {ChartPenData.main(arguments);}
}.start();
但最好有一个类实现runnable,它将参数作为构造函数参数,并将其存储为成员变量以在run()方法中使用。 然后你会这样做:
new Thread(myRunnable).start();
答案 1 :(得分:1)
Thread t = new Thread() {
public void run() {
ChartPenData.main(arguments);
}
};
t.start();
答案 2 :(得分:1)
最简单的安全方法是使用java.util.concurrent.ExecutorService。
您可以使用java.util.concurrent.Executors实用程序方法来创建ExecutorService
示例:
private final ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.submit( new Runnable() {
@Override
public void run()
{
ChartPenData.main(arguments);
}
} );
答案 3 :(得分:1)
这应该让你对你想要实现的目标有一个公平的了解
public class Tester {
public static void main(String args[]) {
String[] arguments = {"param1", "param2"};
Thread t = new Thread(new ClassCaller(arguments));
t.start();
}
}
class ClassCaller implements Runnable {
private String[] arguments;
public ClassCaller(String[] args) {
arguments = args;
}
public void run() {
ChartPenData.main(arguments);
}
}
class ChartPenData {
//your class code goes here
}
答案 4 :(得分:1)
您的示例代码没有多大意义:
Thread
。Thread
一样(并且,我从函数的名称猜测那个&#39}不是当你说要在线程中调用函数时,它会做什么。这里的其他答案向您展示了您的要求,但IMO,在您尝试学习任何有关线程的知识之前,最好还是学习更多Java基础知识(类,类型,变量,方法调用等)。