Мне нужно вызвать этот класс из фонового потока.Как вызвать класс Java из фонового потока
ChartPenData.main(arguments);
Как я могу это сделать?
Thread thread = new Thread();
thread = ChartPenData.main(arguments);
thread.run();
Мне нужно вызвать этот класс из фонового потока.Как вызвать класс Java из фонового потока
ChartPenData.main(arguments);
Как я могу это сделать?
Thread thread = new Thread();
thread = ChartPenData.main(arguments);
thread.run();
new Thread() {
public void run() {ChartPenData.main(arguments);}
}.start();
Но лучше иметь класс реализации работоспособной, который принимает аргументы в качестве параметров конструктора, и сохранить его в качестве переменной-члена использовать в перспективе() метод. Тогда вы могли бы сделать:
new Thread(myRunnable).start();
Thread t = new Thread() {
public void run() {
ChartPenData.main(arguments);
}
};
t.start();
, откуда бы он получил аргументы? – JavaHopper
Самый простой безопасный способ сделать это с помощью 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);
}
});
Это должно дать вам четкое представление о том, что вы пытаетесь достичь
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
}
Ваш пример кода не имеет смысла:
Thread
, который ничего не делает.Thread
(и, я предполагаю, что от имени функции, что это не то, что он делает), когда вы говорите, вы хотите вызвать функцию в нить.Другие ответы здесь показывают, что вы просили, но ИМО, вам было бы лучше узнать больше об основах Java (классы, типы, переменные, вызовы методов и т. Д.), Прежде чем пытаться научиться чему-либо о потоках.
где он получит аргументы? – JavaHopper
Поскольку Thread является анонимным и встроенным, он может видеть переменные за пределами своей области – Blitzkr1eg