マルチスレッド問題


テーマの要求、主なスレッドは100回循環して、サブスレッドは10回循環して、更に主なスレッドは100回循環して、サブスレッドは10回循環して、50回循環します
最初の設計思想は両側が互いに傍受し合い、メインスレッドから100回行い、サブスレッドがサブスレッドを行う流れを傍受することである.例であるが,かなりのシステムリソースを占有することは望ましくない考えである.今日もまだまだ距離が足りないと感じて頑張ります.しかも書く時も致命的なミスを犯してしまったので、JAVAの基礎的な基礎を強化する必要があります.
 
public class ThreadTest {
 //      (         ...        )
 static int i=0;
 static int j=0;
 static int k=0;
 public static void main(String[] args) {
  //    
  new Thread(new Runnable() {
   public void run() {
    //     ,i=0,       ,  100   
    while(i%10==0){
     try {
      Thread.sleep(100);
     } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
     j++;
     System.out.println(" j"+j+" i"+i);
    }
   }
  }).start();
  
  new Thread(new Runnable() {
   public void run() {
    while(true){
     try {
      Thread.sleep(40);
     } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
     //j!=0           , j 100   
     while(j%100==0&&j!=0){
      i++;
      System.out.println(" i"+i+" j"+j);
      try {
       Thread.sleep(100);
      } catch (InterruptedException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
     }
    }
    
   }
  }).start();

 }
}

しかし、このような運行は私の予想に達していません.このような状況を出すからです.父i 1子j 100はi=1の時も最初のスレッドに入り、子j 101父i 1を打つと、私は何が起こったのか理解できません.達人に教えてもらいます.