再次思考:xdb和无锁2种设计方案

其实xdb解决的就是:一旦出现了数据同时访问的情况,那么锁互斥就有作用了,对这个数据的访问只能有一个线程进来。

而无锁方案,则是:路由到一个固定线程,现在想想,其实也没什么区别了。

以:排行榜结算为例子,那么上榜逻辑,根据榜单类型,始终到这个榜单所在的线程,那就没什么问题。同时,为了尽量让线程的压力均匀一点,直接根据rankType走自己固定的线程即可。

如果是发奖这种,则是:包装下Task,到玩家指定的这个线程中执行即可。

enum ERankType{

        TYPE_1(1, "排行榜类型1"),

         TYPE_2(2, "排行榜类型2"),

        private int rankType;

}

这样子直接搞就行,其实想想,如果是:使用redis来做,redis本身就是单线程的,其实也都差不多,在redis服务器这里,都是挨个执行队列中提交过来的redis命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值