本帖最后由 张胜格 于 2012-12-15 10:07 编辑
03.class Bank{
04. private int sum;
05. Object obj = new Object();
06. public void add(int n)
07. {
08. synchronized(obj)
09. {
10. sum = sum + n;
11. try
12. {
13. Thread.sleep(10);
14. }
15. catch (Exception e)
16. {
17. }
18. System.out.println("sum="+sum);
19. }
20. }
21.}
红色部分是同步代码块,即是加同步的部分,意思是说当一个线程执行这段代码时别的线程就不能执行了,
共享的数据其实就是同步代码块中的数据,这里是sum,这样当sum在一个线程中值改变时,就不会影响其它的线程中的数据了 |