2016-04-16 12 views
3

2つのスレッドを作成したい.1つのスレッドは奇数を印刷し、もう1つのスレッドは1から20までの偶数を印刷する必要があります。 これは私が今まで試みたコードですが、期待される出力を与えません。Javaで2つのスレッドを作成

public class JavaApplication40 extends Thread { 
    @Override 
    public void run(){ 
     while (true){ 
      for (int i=0;i<=20;i++){ 
      if(i%2!=0){ 
       System.out.println("odd " +i); 
      } 
     } 
     } 
    } 

    public static void main(String[] args) { 
     Thread t =new JavaApplication40(); 

     for (int x=0;x<=20;x++){ 
      if(x%2==0){ 
      System.out.println("even " + x); 
      } 
     } 

    } 

} 

このコードだけでもnumbers.Iを出力は、奇数のtoo.Someoneは、私が期待される出力を得るために上記のコードを変更する方法を教えてくださいしたいです。

+1

スレッドを開始しませんでした。エグゼクターでの投稿は良いです。 –

+0

このコードの後に​​startメソッドを呼び出す必要がありますか?スレッドt =新しいJavaApplication40();私はどこにスタートメソッドを含めるべきですか? – Char

+0

ちょうどそれは良いですが、それはすぐに開始する保証はありません –

答えて

3

でそれを起動呼び出します作成されます。お電話ください。

t.start(); 

さらに、Threadを延長する必要があります。代わりに、Runnableを実装してスレッドでラップする必要があります。また、値が奇数かどうか、また値が常に奇数か偶数かを確認してもチェックする必要はありません。

public class JavaApplication40 { 
    public static void main(String[] args) { 
     Thread t = new Thread(new Runnable() { 
      public void run() { 
       // starting at 1 and counting by 2 is always odd 
       for (int i = 1; i < 10000; i += 2) 
        System.out.println("odd " + i); 
      } 
     }); 
     t.start(); 

     // starting at 0 and counting by 2 is always even 
     for (int x = 0; x < 10000; x+=2) 
      System.out.println("even " + x);  
    } 
} 

注:スレッドを使用することの全ポイントは独立した実行を持ち、スレッドには時間がかかります。つまり、すべての偶数と奇数を一緒に得ることができます。つまり、スレッドを開始するよりも速く印刷します。

複数の番号を同時に印刷する必要がある場合があります。例えばの代わりに。

+0

あなたの説明のためにありがとうございました – Char

+0

あなたは作成後に開始メソッドを呼び出しましたスレッドt右ですか? – Char

+0

@Charこれは、最初の 'odd'メッセージの前に多くの' even'メッセージを見ることができるように開始するのに時間がかかることに注意してください。 –

1

スレッドを作成しましたが、起動しませんでした。

Thread t =new JavaApplication40(); 

を開始したとき、あなたはそれを開始するためにあなたがstart()を呼び出す必要がありThreadを作成した後、それは、それはrun()

t.start()

1
ExecutorService es=Executors.newFixedThreadPool(2); 
es.submit(t); 
for .... 

es.shutdown(); // .shutdownNow() for infinite looped threads 
関連する問題