Как запустить основной поток как поток в реальном времени

В реальном времени 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 ответа

Решение

Если RealtimeThreads не являются потоками deamon, вы можете позволить основному потоку закончить и сохранить все работающее внутри RealtimeThreads

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 потока?

Нет. Если вы запускаете два потока, а затем возвращаете / "падаете с края" основного метода, у вас будет запущено два потока.

Другие вопросы по тегам