如何找出线程安全问题:
1.明确那些代码块是多线程运行代码
2.明确共享数据
3.明确多线程运行代码中哪些语句是操作共享数据的
同步函数示例:
class Save{
private int sum;
public synchronized void add(int n){
sum+=n;
System.out.println("sum="+sum);
}
}
class Cus implements Runnable{
private Save b=new Save();
public void run(){
for(int x=0;x<3;x++){
b.add(100);
}
}
}
class Bank{
public static void main(String[] args){
Cus c=new Cus();
Thread th1=new Thread(c);
Thread th2=new Thread(c);
th1.start();
th2.start();
}
}