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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 szsycwb 于 2014-5-23 16:15 编辑

通常使用懒汉式都会同步线程,现在我想到一个不同步的语句,不知道是否可以。
代码如下:
  1. class Single  
  2.     {  
  3.        private static Single instance=null;
  4.        private Single(){}  
  5.        public static Single getInstance()  //通常要同步这个方法,但我使用三目运算符,简化if else语句
  6.        {  
  7.                return instance==null?(instance=new Single()):instance;
  8.        }   
  9.     }  
复制代码

5 个回复

倒序浏览
可以这样用
回复 使用道具 举报
经过测试原来不可以这样用,这样用也会出现线程安全问题
回复 使用道具 举报
路过瞅瞅长长知识~
回复 使用道具 举报
本帖最后由 Mr._Strange 于 2014-5-24 17:53 编辑

你的这个问题我也想过,后来我向一位java老师请教过,三元运算符依旧会出现安全隐患,因为三元运算符也是一步步执行,先判断,再运行执行语句,它不是因为是一句话就可以一下执行完的,它也是分两次运算。所以,不可以的。
回复 使用道具 举报
一般来说if else的性能比三目运算符好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马