Как запустить основной поток как поток в реальном времени
В реальном времени Java можно создать поток в реальном времени и запустить его с помощью следующих методов:
RealtimeThread rt = new RealtimeThread(){
public void run(){
/*do work*/
}
};
rt.start();
RealtimeThread rt2 = new RealtimeThread();
rt2.start();
RealtimeThread rt3 = new RTThread();
rt3.start();
где RTThread - это класс, который расширяет RealtimeThread. Но ясно, что вышеупомянутые подходы не работают, когда дело доходит до основного. Так есть ли способ сделать это? Моя мотивация заключается в том, что я хочу запускать только 2 потока в реальном времени. Если я запущу два потока реального времени в main, не будет ли всего 3 потока?
3 ответа
Если RealtimeThread
s не являются потоками deamon, вы можете позволить основному потоку закончить и сохранить все работающее внутри RealtimeThread
s
public class BootStrap extends Runnable{
public static void main(String[] args){
new RealtimeThread(new BootStrap()).start();
//main finishes running and stops
}
public void run(){
//...
}
}
Разве не все темы RealTimeThreads в RTJ? в том числе основной поток?
Если я запущу два потока реального времени в main, не будет ли всего 3 потока?
Нет. Если вы запускаете два потока, а затем возвращаете / "падаете с края" основного метода, у вас будет запущено два потока.