2016-08-16 5 views
-2

1から10までカウントするスレッドと1から10までカウントするスレッドを書きます。例えばのためにcreate-two-threads-both -display-numbers-oneの後に1つ

:スレッド1出力:1 スレッド2出力:1 スレッド1出力:2 スレッド2出力:2

私はコード

public class Test1 extends Thread 
{ 
public void run(){ 
    for(int i=1;i<=10;i++){ 
     //System.out.println(i); 
     try{ 
      System.out.println(Thread.currentThread().getName()+"+i); 
      Thread.sleep(500); 

     }catch(Exception e){ 
      System.out.println(e); 

     } 
    } 
} 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    Test1 t1=new Test1(); 
    Test1 t2=new Test1(); 
    //Test1 t3=new Test1(); 
    t1.start(); 
    t2.start(); 
    //t3.start(); 

} 

} 

Got the output as:- 
Thread-1 1 
Thread-0 1 
Thread-1 2 
Thread-0 2 
Thread-0 3 
Thread-1 3 
Thread-0 4 
Thread-1 4 
Thread-1 5 
Thread-0 5 
Thread-1 6 
Thread-0 6 
Thread-1 7 
Thread-0 7 
Thread-1 8 
Thread-0 8 
Thread-1 9 
Thread-0 9 
Thread-1 10 
Thread-0 10 

下に書かれているが、出力がでませんシーケンス 出力を希望します: スレッド1出力:1 スレッド2出力:1 スレッド1出力:2 スレッド2出力:2あなたはこれに影響を与えることができない

+0

を –

答えて

-1

...平行に取り組ん2つのスレッドは...確定的ではありません

CPUはそれが糸を取ると、「ステップ」を行いますいくつかの無料のリソースを持っている場合を意味

...どのスレッドに影響を与えることはできません。

を見てみましょう:私はスレッドが最後のシーケンスまで1後の1つを出力するようにあなたは、同期を達成するために私を助けconcept.Couldをスレッドに新しいですCan a multi-threaded program ever be deterministic?

関連する問題