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 }