Java基础之多线程同步银行存款示例:
class BankDemo
{
public static void main(String[] args)
{
Thread t1 = new Thread(new Person());
Thread t2 = new Thread(new Person());
t1.start();
t2.start();
}
}
class Person implements Runnable
{
private static Bank bank = new Bank();
public void run()
{
for(int i=0;i<3;i++)
{
bank.add(100);
}
}
}
class Bank
{
private int sum;
public void add(int n)
{
synchronized(this)
{
this.sum+=n;
System.out.println("sum:"+this.sum);
}
}
}
{
public static void main(String[] args)
{
Thread t1 = new Thread(new Person());
Thread t2 = new Thread(new Person());
t1.start();
t2.start();
}
}
class Person implements Runnable
{
private static Bank bank = new Bank();
public void run()
{
for(int i=0;i<3;i++)
{
bank.add(100);
}
}
}
class Bank
{
private int sum;
public void add(int n)
{
synchronized(this)
{
this.sum+=n;
System.out.println("sum:"+this.sum);
}
}
}