マルチスレッド-同期ロック
1828 ワード
public class SynchronizedDemo{
public static void main(String args[]){
System.out.println("main ");
Account account1=new Account(" ");//
new ThreadDemo("A",account1,1).start();//
new ThreadDemo("B",account1,2).start();//
new ThreadDemo("C",account1,1).start();//
System.out.println("main ");
}
};
class ThreadDemo extends Thread{
public Account account;
public int flag=1;
public ThreadDemo(String name,Account account,int flag){
super(name);
this.account=account;
this.flag=flag;
}
public void run(){
/* for(int i=0;i<4;i++){
System.out.println(" "+Thread.currentThread().getName()+i) ;
}*/
if(flag==1){
this.account.working();
}else{
this.account.sleep();
}
}
};
class Account{
private String name;
private int i=30;
public Account(String name){
this.name=name;
}
//public void working(){
public synchronized void working(){
for(int j=0;j<8;j++){
System.out.println(" "+Thread.currentThread().getName()+" "+name+" "+" "+i);
i--;
}
}
public synchronized void sleep(){
for(int j=0;j<8;j++){
System.out.println(" "+Thread.currentThread().getName()+" "+name+" "+" "+i);
i++;
}
}
}
説明: