简述一带一路战略意义Double check 以其意义

安全检查中...
请打开浏览器的javascript,然后刷新浏览器
< 浏览器安全检查中...
还剩 5 秒&京 东 价:
PLUS会员专享价
您购买此商品可享受专属价
增值业务:
重&#x3000;&#x3000;量:
搭配赠品:
所 在 地:北京 海淀区
服务支持:
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
Traces Double Check
商品介绍加载中...
扫一扫,精彩好书免费看
服务承诺:
京东平台卖家销售并发货的商品,由平台卖家提供发票和相应的售后服务。请您放心购买!
注:因厂家会在没有任何提前通知的情况下更改产品包装、产地或者一些附件,本司不能确保客户收到的货物与商城图片、产地、附件说明完全一致。只能确保为原厂正货!并且保证与当时市场上同样主流新品一致。若本商城没有及时更新,请大家谅解!
权利声明:京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用。
注:本站商品信息均来自于合作方,其真实性、准确性和合法性由信息拥有者(合作方)负责。本站不提供任何保证,并不承担任何法律责任。
印刷版次不同,印刷时间和版次以实物为准。
价格说明:
京东价:京东价为商品的销售价,是您最终决定是否购买商品的依据。
划线价:商品展示的划横线价格为参考价,该价格可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在京东平台上曾经展示过的销售价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:如无特殊说明,折扣指销售商在原价、或划线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。
异常问题:商品促销信息以商品详情页“促销”栏中的信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
浏览了该商品的用户还浏览了
加载中,请稍候...
价&#x3000;格: 到
&#x3000;&#x3000;&#x3000;
iframe(src='///ns.html?id=GTM-T947SH', height='0', width='0', style='display: visibility:')赞助商链接
近日模仿了Jive中的Cache,自己做了一个通用的Cache系统。于是牵涉到了一些同步问题。我发现Jive中好多地方用到了Double Check Lock.我看了一些相关的文档,应该说DCL是在Java中不成立的。那么我现在这段代码大家看看,能否使用呢?/**
* Get object from cache
* @param type object type
* @param key object ID as key in cache
* @return Object
public static Object getObject(Object cacheType,Object key){
Cache cache = (Cache)cacheList.get(cacheType);
if(cache == null){
synchronized(cacheType){ //这里保证cacheType是全局且唯一的
cache = (Cache)cacheList.get(cacheType);
if(cache == null){
cache = new Cache(105,lifeTime);
}上面的代码是根据CacheType从一个HashMap中去get()某个Cache。由于DCL不成立,所以上面的代码无法保证同步(具体参见http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html)那么,我改动成为这样以后,是否可以了呢?
Class CacheManager{
private static Cache reservedCache = new Cache();
public static Object getObject(Object type,Object key){
public static Object getObject(Object cacheType,Object key){
Cache cache = (Cache)cacheList.get(cacheType);
if(cache == null){
synchronized(cacheType){ //这里保证cacheType是全局且唯一的
cache = (Cache)cacheList.get(cacheType);
if(cache == null){
cache = reservedC
reservedCache = new Cache(105,lifeTime);
&&java与模式&&中指出dcl在java中不可用。具体原因没有说太清楚。
what's the relationship between reserverCache and cachelist in your code? if you later put reserverCache into cachelist at the end of synch block, I guess it's fine as there is no crossing point among threads before that. Here is another article on DCL:/javaworld/jw-02-2001/jw-0209-double-p2.html
& what's the relationship between reserverCache and& cachelist in your code? cacheList是一个HashMap,Key是public static final Integer,代表保存Cache的类型,Value是Cache Object.而Cache内部也用了一个HashMap而已,只不过Cache::get/set同步了而已。&if you later put& reserverCache into cachelist at the end of synch& block, I guess it's fine as there is no crossing& point among threads before that.我就在想,引用之间的赋值应该是原子操作的吧?
这篇文章偶看过了,偶现在就用static singlton。不过不知道如果把我的程序移到了集群的AppServer上以后,会怎么样。。。。好多Singleton的。。。汗ing...偶要是全部synchronized起来,那么1CPU和4CPU还有什么区别呢?看起来,用Java写多线程容易,但是要写好也不是那么容易了,基本上已经和用C++处于同一个水平层次咯。或者说和语言差不多无关咯~~~重要的是要知道点系统结构,汇编咯,否则自己死到那里取都不知道错在咯~~~
赞助商链接
赞助商链接
最佳分辨率
OpenSource
Code & 2002-20

我要回帖

更多关于 简述两学一做的意义 的文章

 

随机推荐