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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

演练代码如下:
class Bank
{
        //定义计数器,记录存入总金额
        private int sum;
        //定义同步函数
        public synchronized void add(int n)
        {
                        sum = sum + n;
                        //打印结果
                        System.out.println(Thread.currentThread().getName()+"存入100,sum="+sum);
        }
}
class Cus implements Runnable
{
        //创建Bank对象b
        private Bank b = new Bank();
        //复写run方法,写入需要同时执行的代码
        public void run()
        {        //定义循环,每个储户存储300次
                for(int x=0; x<300; x++)
                {
                        b.add(100);
                }
        }
}
public class  Test
{
        public static void main(String[] args)
        {
                //穿件客户对象c
                Cus c = new Cus();
                //创建两个对象
                Thread t1 = new Thread(c,"张三");
                Thread t2 = new Thread(c,"李四");
                //开启两个线程
                t1.start();
                t2.start();
        }
}

同步函数和同步代码块:前者是锁方法  ,后者是锁对象  .
如果是多线程操作同一个对象, 那就锁对象 比如说存钱和取钱时两个方法...操作的都是同一个账户,这个时候就要锁账户对象如果说一个买票的方法 一次只能进去一个人买..那就要锁住这个方法..只让一个线程进入这个方法

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马