A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋发吧小白 高级黑马   /  2014-8-24 09:06  /  873 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看视频毕老师讲的 线程同步中,毕老师的代码如下:
class Bank
{
        private int sum=0;
        public void add(int a)
        {
                sum = sum + a;
                        System.out.println("总金额为:"+sum);
        }
}
class User implements Runnable
{
        Bank b = new Bank();
        public void run()
        {
                for (int i = 0;i<3 ;i++ )
                {
                        b.add(100);
                }
        }
}

public class Demo
{
        public static void main(String [] args)
        {
                User u = new User();
                Thread t1 = new Thread(u);
                Thread t2 = new Thread(u);
                t1.start();
                t2.start();
        }
}

这样会出现安全性问题。
但是为什么 在存钱时,来一个用户 创建一个用户 也就是下面代码
public class Demo
{
        public static void main(String [] args)
        {
                User u1 = new User();
                User u2 = new User();
                Thread t1 = new Thread(u1);
                Thread t2 = new Thread(u2);
                t1.start();
                t2.start();
        }
}

1 个回复

倒序浏览
public class Demo
{
        public static void main(String [] args)
        {
                User u = new User();  这里可以看成存钱的窗口。
                Thread t1 = new Thread(u); 开户 第一个客户存钱。
                Thread t2 = new Thread(u);  开户 第2个客户存钱
                t1.start();
                t2.start();
        }
}
为什么一定要创建银行对象才叫开户。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马