多线程3:多线程同步
?
?
?
最后打印的结果为
假设A线程执行money-=number后,此时money的值为200。B线程马上赶到,在A线程执行打印语句前执行
money -= number,此时money的值是-600,接下去两个打印语句都是打印-600。
?如果将getMoney方法改成
?
package com.test.thread;public class MainTest {public static void main(String[] args) {Sample sample = new Sample();IncreaseThread t1 = new IncreaseThread(sample);DecreaseThread t2 = new DecreaseThread(sample);IncreaseThread t3 = new IncreaseThread(sample);DecreaseThread t4 = new DecreaseThread(sample);t1.start();t2.start();t3.start();t4.start();}}?
上例有两个线程类:分别是IncreaseThread和DecreaseThread,在MainTest中生成了四个线程,用于同步访问Sample类,最后打印的结果为1,0.......
?