62,623
社区成员
发帖
与我相关
我的任务
分享
public class ThreadTest implements Runnable{
static int i = 100;
static boolean addFlag = true; // 加i,减i?
public ThreadTest(int maxThread) throws Exception{
Thread[] t = new Thread[maxThread];
for(int j=0;j<t.length;j++){
if(j % 2 == 0){ // 下标如果是2的倍数,就加 i + 1
setAddFlag(true);
t[j] = new Thread(this);
t[j].start();
t[j].join();
}
else{ // i - 1
setAddFlag(false);
t[j] = new Thread(this);
t[j].start();
t[j].join();
}
}
}
public synchronized void setAddFlag(boolean b){
addFlag = b;
}
public void run(){
if(addFlag){
i++;
System.out.println("i = " + i + "\t" + ((addFlag)?"加i":"减i"));
}
else{
i--;
System.out.println("i = " + i + "\t" + ((addFlag)?"加i":"减i"));
}
}
public static void main(String[] args) throws Exception{
new ThreadTest(10); // 设置启动线程数
}
}