本帖最后由 小冰块 于 2013-6-7 00:32 编辑
看完毕老师11-11的视频后自己敲代码,中间出了点差错,虽然后来对着老师的代码改过来了,但是不知道为什么是这样。详细请看代码注释
class Bank
{
private static int sum;
Object obj = new Object();//-------------Object放在这里可以实现同步
public void add(int x)
{
//Object obj = new Object(); -------------Object放在这里就不能同步了
synchronized(obj)
{
sum = sum + x;
try
{Thread.sleep(10);}
catch (Exception e)
{}
System.out.println(sum);
}
}
}
class Cus implements Runnable
{
Bank b = new Bank();
public void run()
{
for (int i=0;i<3 ;i++ )
{
b.add(100);
}
}
}
class BankDemo
{
public static void main(String[] args)
{
Cus s = new Cus();
Thread t1 = new Thread(s);
Thread t2 = new Thread(s);
t1.start();
t2.start();
}
}
|