2011-08-03 83 views
0

在實時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個線程?

回答

0

如果RealtimeThread s的後臺程序沒有線程可以讓主線程完成,並保持一切RealtimeThread小號

public class BootStrap extends Runnable{ 

    public static void main(String[] args){ 
     new RealtimeThread(new BootStrap()).start(); 
     //main finishes running and stops 
    } 

    public void run(){ 
    //... 
    } 
} 
+0

這真棒,謝謝! – wmjdgla

+0

經過測試,它工作得很漂亮。我還在'public void run()'中的實際代碼之前添加了一個'sleep()',然後是'CyclicBarrier',以確保main真的死掉,另外兩個線程同時開始工作。 – wmjdgla

0

如果我在main中啓動兩個實時線程,總共不會有3個線程嗎?

號如果啓動兩個線程,然後返回/「脫落邊緣」的主要方法,你必須運行兩個線程。

0

內運行時不會在RTJ所有線程RealTimeThreads?包括主線程?

+0

這會很棒,但我不記得在任何地方閱讀它。還用下面的代碼測試了這個: 'Thread currT = Thread.currentThread();如果(currT instanceof RealtimeThread)System.out.println(「Yeah!」); else if(currT instanceof Thread)System.out.println(「Meh。」); else System.out.println(「WTF O.o」);' 它打印出「Meh」。 – wmjdgla

相關問題