マルチスレッド問題
1734 ワード
テーマの要求、主なスレッドは100回循環して、サブスレッドは10回循環して、更に主なスレッドは100回循環して、サブスレッドは10回循環して、50回循環します
最初の設計思想は両側が互いに傍受し合い、メインスレッドから100回行い、サブスレッドがサブスレッドを行う流れを傍受することである.例であるが,かなりのシステムリソースを占有することは望ましくない考えである.今日もまだまだ距離が足りないと感じて頑張ります.しかも書く時も致命的なミスを犯してしまったので、JAVAの基礎的な基礎を強化する必要があります.
しかし、このような運行は私の予想に達していません.このような状況を出すからです.父i 1子j 100はi=1の時も最初のスレッドに入り、子j 101父i 1を打つと、私は何が起こったのか理解できません.達人に教えてもらいます.
最初の設計思想は両側が互いに傍受し合い、メインスレッドから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を打つと、私は何が起こったのか理解できません.達人に教えてもらいます.