标签目录:并发

以下是与标签 “并发” 相关联的文章

一个框架的线程同步代码引起的思考

最近在review公司的前任架构师留下来的框架代码,其中,有一段代码实现的让人很confused,仔细阅读和分析后,发现可能存在一个隐含的bug,在进行了深入的分析和实践,通过一个简单的程序进行了最小化重现,证明了bug的存在,并且对框架进行改造,改正了这个bug,于是,在这个帖子中记录这个问题的来龙去脉,希望能够帮助……

【未完待续】电商之商品后台那些事儿

1. 分库分表 2. 如何存储交易快照? 3. 类目,属性,标签等的设计?SKU?SDU? 4. 商品需要下线后才能修改吗?淘宝价格在下单后可以更改订单。 5. 商品使用一个神奇的乐观锁,怎么扣减库存? 不使用悲观锁,也不使用乐观锁,使用:update balance = balance – 1 where balance > 0,成功扣减后会返回更新的条数,如……

浅析JDK1.7新增的同步工具Phaser

JDK提供的同步功能经历了几个时代,JDK1.4之前的实现基本还处于石器时代,其提供的线程方法suspend, resume, stop等可能会产生死锁,到了JDK1.4已经不再提倡使用这些方法,所以,并发程序的开发人员只能使用Object类提供的wait/notify, 以及语言级别的synchronized关键字,以及可以保证内存可见性的volatile,这个时代基……

【转载】【经典】Java中不同的并发实现的性能比较

本文转载自:Java中不同的并发实现的性能比较 英文原文来源于:Fork/Join Framework vs. Parallel Streams vs. ExecutorService: The Ultimate Fork/Join Benchmark 关于IO和计算任务对并行性的影响和分析,请参考我的博客文章:无状态和并行性是可伸缩性的两大基石   Fork/Join框架在不同配置下的表现如何? 正如……

数据库和缓存一致性的问题

有一个key/value存储在数据库中,但是缓存在memcache中,对这个key/value有高并发的查询和更新操作,怎么保证数据库和缓存的一致性呢? 方案1 – 更新数据库时失效缓存 when updateDb(key) invalideCache(key) when query(key) updateCache(key) 问题: 查询时有不一致的情况,如下, Step1: Thread1 getDb(key)……

仅仅使用volatile修饰成员变量到底线程安全吗?

今天几个朋友在群里讨论下面的代码到底线程安全不安全? 我看了一下,我说这个程序是否线程安全应该分为两个方面来分析, 第一,这是一个单例模式,单例模式的实例在成员变量初始化的时候创建,变量初始化是在单线程下运行的,避免了任何的线程安全问题,在实例使用的时候直接返回给客户程序即可,不需要使用synchronize……