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++;
}
}
}
说明: