关于多线程同步问题
class threadMeng {
public static void main(String[] args){
threadmm mt=new threadmm();
// mt.start();
new Thread(mt).start();//这样可以多个一样的线程
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();
//while(true)
System.out.println("main:"+Thread.currentThread().getName());
}
}
class threadmm implements Runnable{
Object obj=new Object();
int i=1;// 如果 i 在run 方法里定义的话就不能同步
int j=10;
boolean b=true;
public void run(){
while(b){
synchronized(obj){
if(i<j){
try{
Thread.sleep(10);
}
catch(Exception e){
}
System.out.println("threadmm:"+
Thread.currentThread().getName()+"---"+i);
i++;
}
}
if(i>=j){
b=false;
}
}
}
}
int i=1;// 如果 i 在run 方法里定义的话就不能同步
这是为何呢?