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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范明正 黑马帝   /  2011-8-17 09:38  /  3365 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.isoftstone.interview.bank;

public class synchroniz {
        public static void main(String[] args) {
                synchroniz ppZ = new synchroniz();
                sayHello3();       
                ppZ.getX();
        }

        synchronized static void sayHello3() {
                System.out.println("tx");
        }

        synchronized void getX() {
                System.out.println("pt");
        }
}

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

4 个回复

倒序浏览
黑马网友  发表于 2011-8-18 12:20:50
沙发
你的两个方法不可能同步。首先同步的话你要看同步锁的对象是哪个,你上面一个是静态同步方法,一个是对象的同步方法。对象方法的同步锁用的就是调用这个方法本身的对象。 而静态方法的同步锁对象是跟类相关的,你想想有哪个对象是跟类相关的?跟类相关的对象永远只有一个,那就是这个类的Class对象。因为你上面两个方法所用的同步锁对象不同,所以不会同步。

评分

参与人数 1技术分 +3 收起 理由
wangfayin + 3 回答很好!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-18 12:53:26
藤椅
= =什么同步不同步的。。。就一线程,顺序执行,加了syncronized效率反而低了
回复 使用道具 举报
黑马网友  发表于 2011-8-18 12:56:24
板凳
。。。。我汗,你拿这个synchroniz做类名,与synchronized无关。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马