一次多线程并发事故

 

说明:

1)

读写的数据结构包含:持仓、盈亏 2部分

虽然浮动盈亏这块没有更新持仓,仅更新了盈亏,但写入时又把读出来的原持仓写回去了

成交读取pb持仓

                           浮动盈亏读取pb盈亏

处理持仓

                               处理盈亏

写入pb持仓

                               写入pb盈亏

 

所以,读取和写入的内容粒度应细,这也关系到排他锁的粒度
这里如果将持仓与盈亏分开存储,即使无锁,也不存在并发事故

 

2)不应在单线程的disruptor消费者中做任何阻塞

https://www.cnblogs.com/silyvin/p/10076003.html

 

3)只锁了user级别,但却在被锁代码块中操作team的内容,如果同一个team的两个user同时触发,会有并发问题

posted on 2019-01-09 14:48  silyvin  阅读(257)  评论(0编辑  收藏  举报