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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨彪 中级黑马   /  2012-8-14 18:41  /  1336 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

线程同步和同步方法的区别,如何测出同步方法的锁到底是哪个对象?代码体现一下最好,谢谢啦!!!

1 个回复

倒序浏览
private int tickets = 100;
        Object obj = new Object();

        @Override
        public void run() {
                while (true) {
                        // synchronized (obj) {
                        // if (tickets > 0) {
                        // try {
                        // Thread.sleep(10);
                        // } catch (InterruptedException e) {
                        // e.printStackTrace();
                        // }
                        // System.out.println(Thread.currentThread().getName() + "卖出第"
                        // + (tickets--) + "票");
                        // }
                        // }
                        show();
                }
        }

        public synchronized void show() {
                if (tickets > 0) {
                        try {
                                Thread.sleep(10);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                        System.out.println(Thread.currentThread().getName() + "卖出第"
                                        + (tickets--) + "票");
                }
        }
同步方法 的锁是this     同步代码块的锁可以任意

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马