多线程-同步函数
1 package multithread.test; 2 /* 3 * 需求:储户,有两个,每个都到银行存钱每次存100,,共存3次。 4 * 5 * 6 */ 7 8 class Bank{ 9 private int sum; 10 // private Object obj = new Object();//函数修饰后同步代码块对象就不需要了 11 public synchronized void add(int num) {//add方法也是线程的代码 ,sum是共享数据 12 // synchronized (obj) {//函数和这个代码块内容包括相同,可以用同步函数解决synchronized修饰函数 13 sum = sum +num; 14 15 System.out.println("sum="+sum); 16 // } 17 18 } 19 } 20 class Cus implements Runnable{ 21 Bank b = new Bank(); 22 23 public void run() { 24 for (int x = 0; x < 3; x++) { 25 b.add(100);//找到线程安全隐患的代码 26 } 27 } 28 } 29 public class BankDemo { 30 31 public static void main(String[] args) { 32 // TODO Auto-generated method stub 33 Cus c = new Cus(); 34 Thread t1 = new Thread(c); 35 Thread t2 = new Thread(c); 36 t1.start(); 37 t2.start(); 38 } 39 40 }