本帖最后由 赵海洋 于 2013-7-6 18:34 编辑
public class Test
{
public static void main(String[] args)
{
Custom c = new Custom();
Thread t1 = new Thread(c);
Thread t2 = new Thread(c);
t1.start();
t2.start();
for(int x=1;x<4;x++)
{
System.out.println(Thread.currentThread().getName()+"----"+x);
}
}
}
class Bank
{
int zonge = 0;
public int huiKuan(int jinge)
{
zonge = zonge+jinge;
return zonge;
}
}
class Custom implements Runnable
{
Bank b = new Bank();
public synchronized void run()
{
for(int x=0;x<3;x++)
{
b.huiKuan(100);
System.out.println(Thread.currentThread().getName()+"----"+b.zonge);
}
}
}
输出结果
main----1
main----2
Thread-1----100
Thread-1----200
Thread-1----300
main----3
Thread-0----400
Thread-0----500
Thread-0----600
为什么线程1执行完才执行线程0 不是同步的吗 应该交叉运行的啊
加入主线程测试 与主线程可以交叉运行 多次测试可是t1和t2始终无法交叉运行啊
是因为锁加的有问题吗?到底要如何修改呢?
|