T********i 发帖数: 2416 | 1 抢票机不管规划。现在也是用户自己规划联程路线。
抢票机性能只和中途停靠总站数相关。
全程停靠19次,5.00M/s
全程停靠39次,2.50M/s
全程停靠79次,1.25M/s
以此类推。
谁有毛病会自己规划或者购买全程停靠39次的票。 |
T********i 发帖数: 2416 | 2 这个够清楚了吧?
考虑到某些人的智商,我要尽量尝试换各种方法表达。 |
n**x 发帖数: 606 | 3 我早说了,用户自己规划的话就跟联票不联票一点关系都没有。 Interlocked 加减法
解决所有锁的问题. 我看这个版上人人都能写出来啊。。 用古德霸的话说就是没条线
(或者每个段)都是一个独立的数据库,再简单不过。
不要再吵了, 吵得都不是一个问题,有什么好吵的。
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 抢票机不管规划。现在也是用户自己规划联程路线。 : 抢票机性能只和中途停靠总站数相关。 : 全程停靠19次,5.00M/s : 全程停靠39次,2.50M/s : 全程停靠79次,1.25M/s : 以此类推。 : 谁有毛病会自己规划或者购买全程停靠39次的票。
|
n**x 发帖数: 606 | 4 说到底就跟算1+1,然后来个线性递增没有区别。
大家说对不对? 还有炒的必要吗? 需求都不一样
【在 n**x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我早说了,用户自己规划的话就跟联票不联票一点关系都没有。 Interlocked 加减法 : 解决所有锁的问题. 我看这个版上人人都能写出来啊。。 用古德霸的话说就是没条线 : (或者每个段)都是一个独立的数据库,再简单不过。 : 不要再吵了, 吵得都不是一个问题,有什么好吵的。
|
T********i 发帖数: 2416 | 5 怎么不是一个问题?
我早说了,不管他goodbug怎么做,哪怕只出一种票,最简单情形,能够sustained 5M/
s我都认输。
我这个可以自动规划,多增加一些cache机器而已。
你可以随便增加目前没有那些功能,我的方案都能做。而且都能证明是最优的。
【在 n**x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我早说了,用户自己规划的话就跟联票不联票一点关系都没有。 Interlocked 加减法 : 解决所有锁的问题. 我看这个版上人人都能写出来啊。。 用古德霸的话说就是没条线 : (或者每个段)都是一个独立的数据库,再简单不过。 : 不要再吵了, 吵得都不是一个问题,有什么好吵的。
|
T********i 发帖数: 2416 | 6 看看goodbug几秒钟前说的话,有多脑残?
发信人: goodbug (好虫), 信区: Programming
标 题: Re: 每秒500万, 结论出来看了
发信站: BBS 未名空间站 (Tue Feb 4 15:52:05 2014, 美东)
强耦合在于票数有限,联程票有冲突,不能简单分开。耦合的线路指数而不是线性递增。
这本来就是很清楚的事情。太监非要混淆视听。 |
g*****g 发帖数: 34805 | 7 啥没问题,北京到上海,上海到福州
北京到上海,上海到兰州
就这用户规划的联票,没冲突?你要是北京到上海没票,后半程就不能出票了。
这就是两个有冲突的transaction。
【在 n**x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我早说了,用户自己规划的话就跟联票不联票一点关系都没有。 Interlocked 加减法 : 解决所有锁的问题. 我看这个版上人人都能写出来啊。。 用古德霸的话说就是没条线 : (或者每个段)都是一个独立的数据库,再简单不过。 : 不要再吵了, 吵得都不是一个问题,有什么好吵的。
|
T********i 发帖数: 2416 | 8 各位看到没有?
goodbug实质是弱智。求求各位帮忙教育一下丫。不想看丫把自己毁了。
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 啥没问题,北京到上海,上海到福州 : 北京到上海,上海到兰州 : 就这用户规划的联票,没冲突?你要是北京到上海没票,后半程就不能出票了。 : 这就是两个有冲突的transaction。
|
n**x 发帖数: 606 | 9 有冲突。老魏的方法是北京到上海分成20段。要出这张票的条件是没一段都做
interlock.decrement的,每段都通的话这张票就成。剩下的几张票一次类推。 所以基
本上就便成interlocked 1+1了。。
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 啥没问题,北京到上海,上海到福州 : 北京到上海,上海到兰州 : 就这用户规划的联票,没冲突?你要是北京到上海没票,后半程就不能出票了。 : 这就是两个有冲突的transaction。
|
T********i 发帖数: 2416 | 10 我真难以想象goodbug这个人基本功如此差劲。
丫明显不懂interlock.decrement怎么用。昨天我已经给丫指出来了,丫迄今都不肯牵
狗。
其实Cassandra要是也能实现这个原语primitive,我就不一定和丫赌了。
第一,Cassandra迄今没有这类操作
第二,即使有这类操作,一个变量也不可能达到5M/s。
【在 n**x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 有冲突。老魏的方法是北京到上海分成20段。要出这张票的条件是没一段都做 : interlock.decrement的,每段都通的话这张票就成。剩下的几张票一次类推。 所以基 : 本上就便成interlocked 1+1了。。
|
|
|
g*****g 发帖数: 34805 | 11 只要有冲突,你就不能完全分开到不同的硬件上处理,就这么简单。如果北京-上海一
台机器,上海-福州一台机器,北京-上海-福州,你就要distributed transaction。
如果北京-上海-福州一台机器,北京-上海-兰州一台机器,你还是要distributed
transaction确保北京-上海不超卖。
公公这东西,一旦要distributed transaction就完蛋了。不distributed又撑不住。
【在 n**x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 有冲突。老魏的方法是北京到上海分成20段。要出这张票的条件是没一段都做 : interlock.decrement的,每段都通的话这张票就成。剩下的几张票一次类推。 所以基 : 本上就便成interlocked 1+1了。。
|
T********i 发帖数: 2416 | 12 换做任何一个正常人,说了这些以后,如果看明白interlock.decrement,会连死的心
都有。
当然了,你goodbug不是正常人。
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 只要有冲突,你就不能完全分开到不同的硬件上处理,就这么简单。如果北京-上海一 : 台机器,上海-福州一台机器,北京-上海-福州,你就要distributed transaction。 : 如果北京-上海-福州一台机器,北京-上海-兰州一台机器,你还是要distributed : transaction确保北京-上海不超卖。 : 公公这东西,一旦要distributed transaction就完蛋了。不distributed又撑不住。
|
g*****g 发帖数: 34805 | 13 你别说这些没用的,做不出来还是个太监。昨天到现在,一个赌你赢的都没有。一边倒。
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 换做任何一个正常人,说了这些以后,如果看明白interlock.decrement,会连死的心 : 都有。 : 当然了,你goodbug不是正常人。
|
T********i 发帖数: 2416 | 14 他们那是在害你。
你这个傻孩子。
倒。
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你别说这些没用的,做不出来还是个太监。昨天到现在,一个赌你赢的都没有。一边倒。
|
T********i 发帖数: 2416 | 15 这个有人看懂没?
如果没有的话,俺也懒得费劲了。 |
n*****t 发帖数: 22014 | 16 先到北京局锁一张票,再到上海局锁,失败就放弃北京那张,反馈 false,完全可以分布
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 只要有冲突,你就不能完全分开到不同的硬件上处理,就这么简单。如果北京-上海一 : 台机器,上海-福州一台机器,北京-上海-福州,你就要distributed transaction。 : 如果北京-上海-福州一台机器,北京-上海-兰州一台机器,你还是要distributed : transaction确保北京-上海不超卖。 : 公公这东西,一旦要distributed transaction就完蛋了。不distributed又撑不住。
|
g*****g 发帖数: 34805 | 17 你不服实现一个我来测,别废话。
分布
【在 n*****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 先到北京局锁一张票,再到上海局锁,失败就放弃北京那张,反馈 false,完全可以分布
|
n**x 发帖数: 606 | 18 错了,一旦分布。老魏的interlock加减法就失效了。 要操作数据库每秒500万事天方
夜谭。
分布
【在 n*****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 先到北京局锁一张票,再到上海局锁,失败就放弃北京那张,反馈 false,完全可以分布
|
g*****g 发帖数: 34805 | 19 你理解了就好,我本意就是证明他吹牛。至于他脸皮厚,我是没什么办法。
我可不会去人肉他,找他老板投诉。
【在 n**x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 错了,一旦分布。老魏的interlock加减法就失效了。 要操作数据库每秒500万事天方 : 夜谭。 : : 分布
|
T********i 发帖数: 2416 | 20 你开玩笑是吧?
我都说单机了。需要分布么?
InterlockedIncrement/InterlockedDecrement是Windows上的。
Linux叫__sync_add_and_fetch
本质上一码事。编译成单条机器指令。
比如现在变量为1,三条线程执行InterlockedDecrement,
则各自返回0, -1, -2,最终结果为-2。
分布
【在 n*****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 先到北京局锁一张票,再到上海局锁,失败就放弃北京那张,反馈 false,完全可以分布
|
|
|
L*****e 发帖数: 8347 | 21 老魏,我下面这么理解你的方案对么?
因为是单线程
1. 把所有的请求按时间顺序都读到内存的queue中,然后按顺序处理,每个请求只需要
查询内存数据库,有票就更新内存数据库中所请求路段的所有中间站该车次的票数。这
个查询时间和更新时间只受所请求的路段中的站数影响。。。
2. 一个请求处理完成后,再处理下一个请求。。。
所以老魏的方案要保证,平均1/5m秒的时间内可以处理完一个请求,换句话讲就是1/5m
秒的时间内在内存数据库里可以完成20个站的票数查询以及20个站的票数更新。
从这个方案来讲,多少条线路对performance影响确实不很相关,起码不是线性相关,
线路多只是内存数据库更大,一定程度会加长查询时间。。。
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 抢票机不管规划。现在也是用户自己规划联程路线。 : 抢票机性能只和中途停靠总站数相关。 : 全程停靠19次,5.00M/s : 全程停靠39次,2.50M/s : 全程停靠79次,1.25M/s : 以此类推。 : 谁有毛病会自己规划或者购买全程停靠39次的票。
|
T********i 发帖数: 2416 | 22 我这个可以多线程。用interlocked指令。
5m
【在 L*****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 老魏,我下面这么理解你的方案对么? : 因为是单线程 : 1. 把所有的请求按时间顺序都读到内存的queue中,然后按顺序处理,每个请求只需要 : 查询内存数据库,有票就更新内存数据库中所请求路段的所有中间站该车次的票数。这 : 个查询时间和更新时间只受所请求的路段中的站数影响。。。 : 2. 一个请求处理完成后,再处理下一个请求。。。 : 所以老魏的方案要保证,平均1/5m秒的时间内可以处理完一个请求,换句话讲就是1/5m : 秒的时间内在内存数据库里可以完成20个站的票数查询以及20个站的票数更新。 : 从这个方案来讲,多少条线路对performance影响确实不很相关,起码不是线性相关, : 线路多只是内存数据库更大,一定程度会加长查询时间。。。
|
L*****e 发帖数: 8347 | 23 因为googbug一直强调说你只需要单线程,所谓我按单线程理解。。。如果用interlock
,所节约的时间也就是enqueue/dequeue吧?
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我这个可以多线程。用interlocked指令。 : : 5m
|
T********i 发帖数: 2416 | 24 不对,enqueue/dequeue开销基本为0。
写这种系统,本版长出来晃的,我还没见到有第二人都这个经验。
interlock
【在 L*****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 因为googbug一直强调说你只需要单线程,所谓我按单线程理解。。。如果用interlock : ,所节约的时间也就是enqueue/dequeue吧?
|
n**x 发帖数: 606 | 25 老魏,说这话就不对了。这里哪个人不会多线程对内存变量做interlocked 加减法?难
道我对你的算法本质理解有误?
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 不对,enqueue/dequeue开销基本为0。 : 写这种系统,本版长出来晃的,我还没见到有第二人都这个经验。 : : interlock
|
T********i 发帖数: 2416 | 26 我看基本上都不会。
会的话还讨论啥锁不锁的?interlocked本身就是锁了,而且是最低粒度锁。
后面区段没有票再把前面的InterlockedIncrement还回去。
最差性能是前面区段都有票,最后一个没票。要基本上Interlock两次。
区段数就是停靠站数加一。和联程票有关系么?
这么做,已经比现有的方案好多了。这么简单的,goodbug懂么?
【在 n**x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 老魏,说这话就不对了。这里哪个人不会多线程对内存变量做interlocked 加减法?难 : 道我对你的算法本质理解有误?
|
g*****g 发帖数: 34805 | 27 看来你不是装傻,是真弱智。但不管你不是真弱智,没做出来还是太监。
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我看基本上都不会。 : 会的话还讨论啥锁不锁的?interlocked本身就是锁了,而且是最低粒度锁。 : 后面区段没有票再把前面的InterlockedIncrement还回去。 : 最差性能是前面区段都有票,最后一个没票。要基本上Interlock两次。 : 区段数就是停靠站数加一。和联程票有关系么? : 这么做,已经比现有的方案好多了。这么简单的,goodbug懂么?
|
L*****e 发帖数: 8347 | 28 如果你的interlocked是对内存数据库的变量锁的话,然后多线程,那么你前面declare
的和路线多少无关的说法就不太正确了吧?
如果要多线程处理请求,必然和线路多少有关。A->B->C的联票会受其它以B为中转到C
的请求的影响,而以A为中转到B的请求又受A->B->C的影响。。。现实中这种中转的量
是多大不好说,但是理论上如果考虑每个站都可能是中转站的话,这个复杂度要提高几
个数量级。。。
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我看基本上都不会。 : 会的话还讨论啥锁不锁的?interlocked本身就是锁了,而且是最低粒度锁。 : 后面区段没有票再把前面的InterlockedIncrement还回去。 : 最差性能是前面区段都有票,最后一个没票。要基本上Interlock两次。 : 区段数就是停靠站数加一。和联程票有关系么? : 这么做,已经比现有的方案好多了。这么简单的,goodbug懂么?
|
g*****g 发帖数: 34805 | 29 童鞋们纷纷明白了,可喜可贺。公公这日子是越来越难过了。
declare
C
【在 L*****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 如果你的interlocked是对内存数据库的变量锁的话,然后多线程,那么你前面declare : 的和路线多少无关的说法就不太正确了吧? : 如果要多线程处理请求,必然和线路多少有关。A->B->C的联票会受其它以B为中转到C : 的请求的影响,而以A为中转到B的请求又受A->B->C的影响。。。现实中这种中转的量 : 是多大不好说,但是理论上如果考虑每个站都可能是中转站的话,这个复杂度要提高几 : 个数量级。。。
|
T********i 发帖数: 2416 | 30 看看我刚回goodbug的。
你的帖子说明你也不懂interlocked。
短短几秒钟,goodbug又PA两次。家教下作呀。
发信人: TeacherWei (TW), 信区: Programming
标 题: Re: 总结贴
发信站: BBS 未名空间站 (Tue Feb 4 17:18:04 2014, 美东)
AtomicInteger是java你都理解不了?
我20个段1个都不用锁。
10个线程,每线程20个段用时2us就足够了。
这个你能理解么?叫锁也不是一般意义exclusive的锁,而是锁定一张票,2us以后可能
再把这张票还回去而已。
declare
C
【在 L*****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 如果你的interlocked是对内存数据库的变量锁的话,然后多线程,那么你前面declare : 的和路线多少无关的说法就不太正确了吧? : 如果要多线程处理请求,必然和线路多少有关。A->B->C的联票会受其它以B为中转到C : 的请求的影响,而以A为中转到B的请求又受A->B->C的影响。。。现实中这种中转的量 : 是多大不好说,但是理论上如果考虑每个站都可能是中转站的话,这个复杂度要提高几 : 个数量级。。。
|
|
|
g*****g 发帖数: 34805 | 31 很好,那你就实现了大家可以测呀。光说不练是太监。我还等着你的web service
interface测试呢。需求我已经写得很清楚了。
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 看看我刚回goodbug的。 : 你的帖子说明你也不懂interlocked。 : 短短几秒钟,goodbug又PA两次。家教下作呀。 : 发信人: TeacherWei (TW), 信区: Programming : 标 题: Re: 总结贴 : 发信站: BBS 未名空间站 (Tue Feb 4 17:18:04 2014, 美东) : AtomicInteger是java你都理解不了? : 我20个段1个都不用锁。 : 10个线程,每线程20个段用时2us就足够了。 : 这个你能理解么?叫锁也不是一般意义exclusive的锁,而是锁定一张票,2us以后可能
|
q*c 发帖数: 9453 | 32 你这就是自己实现 transaction - 而且实现的不对。 这种做法我多年前就干过, 你
还的时候出错就完蛋了。 transaction 难就难在这里。
特别是联票, 不在一个计算机上, 超高流量, 出错就是一定的。我就说了, ACID
你一定要牺牲什么。否则 oracle 等等不就全部该去死了。
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我看基本上都不会。 : 会的话还讨论啥锁不锁的?interlocked本身就是锁了,而且是最低粒度锁。 : 后面区段没有票再把前面的InterlockedIncrement还回去。 : 最差性能是前面区段都有票,最后一个没票。要基本上Interlock两次。 : 区段数就是停靠站数加一。和联程票有关系么? : 这么做,已经比现有的方案好多了。这么简单的,goodbug懂么?
|
T********i 发帖数: 2416 | 33 你要是要脸的话,现在应该去死才对。
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 很好,那你就实现了大家可以测呀。光说不练是太监。我还等着你的web service : interface测试呢。需求我已经写得很清楚了。
|
g*****g 发帖数: 34805 | 34 太监出来叫板的是你,不敢实现的也是你。每次恼羞成怒就哭着闹着要找领导,找邻居。
三番版你去了,号称我的老板也要去投诉。就你这没鸡巴的小样。
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你要是要脸的话,现在应该去死才对。
|
q*c 发帖数: 9453 | 35 其实我建议就算 TCP 也是可以的, web interface 开销是比较大。5MM/sec 基本
network IO 都不可能找到现有可用硬件。
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 很好,那你就实现了大家可以测呀。光说不练是太监。我还等着你的web service : interface测试呢。需求我已经写得很清楚了。
|
g*****g 发帖数: 34805 | 36 架构上是没啥区别,他要tcp也行,只要接口合理该有的数据有了就行。
【在 q*c 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 其实我建议就算 TCP 也是可以的, web interface 开销是比较大。5MM/sec 基本 : network IO 都不可能找到现有可用硬件。
|
L*****e 发帖数: 8347 | 37 还不光是每个车次的起点终点可能成为中转站,中间停靠站也可能是别的请求的中转站
,比如说。北京到上海的请求中间停靠站是济南,另外一个请求从石家庄到济南,以济
南为中转去上海。。。
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 童鞋们纷纷明白了,可喜可贺。公公这日子是越来越难过了。 : : declare : C
|
g*****g 发帖数: 34805 | 38 我很早就说了,一旦联票,这是个网络。要看成一个线路,那就是几千段,如果不是几
万段的话。
全国一盘棋就是这个意思。可笑的是全国一盘棋也是太监提出来并且挂在嘴边的。
【在 L*****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 还不光是每个车次的起点终点可能成为中转站,中间停靠站也可能是别的请求的中转站 : ,比如说。北京到上海的请求中间停靠站是济南,另外一个请求从石家庄到济南,以济 : 南为中转去上海。。。
|
L*****e 发帖数: 8347 | 39 我确实不懂,不过我说的是,如果多线程查询及更新数据库,那么就不可能与线路多少
无关,interlocked也不能改变这一点吧?你declare的如果没票interlocked的变量最
多被revert两次不成立吧?每个请求虽然最多二联票,但是每个请求的起点都可能是别
的线路的中转,而这些线路的起点又可能是另外一些请求的中转,所以这是连锁反应。
。。
假设你N个线程处理以下请求,第一个请求成功与否将影响所有其它请求。。。如果请
求1中的B->C是最后一张票,那么剩余其它的请求要全部被revert。。。
1. A->B->C
2. B->C->D
3. C->D->E
...
N. X->Y->Z
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 看看我刚回goodbug的。 : 你的帖子说明你也不懂interlocked。 : 短短几秒钟,goodbug又PA两次。家教下作呀。 : 发信人: TeacherWei (TW), 信区: Programming : 标 题: Re: 总结贴 : 发信站: BBS 未名空间站 (Tue Feb 4 17:18:04 2014, 美东) : AtomicInteger是java你都理解不了? : 我20个段1个都不用锁。 : 10个线程,每线程20个段用时2us就足够了。 : 这个你能理解么?叫锁也不是一般意义exclusive的锁,而是锁定一张票,2us以后可能
|
N*n 发帖数: 456 | 40 这个不难解决。。从算法上要修一下
1。 是要按车次加锁。
2。是出连票时要把相关的两趟车一起加锁。。一个连票出完后,两车次一起解锁。
两个条件都满足,应该就可以解决你那个问题。
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 啥没问题,北京到上海,上海到福州 : 北京到上海,上海到兰州 : 就这用户规划的联票,没冲突?你要是北京到上海没票,后半程就不能出票了。 : 这就是两个有冲突的transaction。
|
|
|
n**x 发帖数: 606 | 41 一旦加锁老魏的方案就瘫痪了。。
【在 N*n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这个不难解决。。从算法上要修一下 : 1。 是要按车次加锁。 : 2。是出连票时要把相关的两趟车一起加锁。。一个连票出完后,两车次一起解锁。 : 两个条件都满足,应该就可以解决你那个问题。
|
g*****g 发帖数: 34805 | 42 一起加锁就不能干净分布到多台机器上。单机完不成,就这么简单。
【在 N*n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这个不难解决。。从算法上要修一下 : 1。 是要按车次加锁。 : 2。是出连票时要把相关的两趟车一起加锁。。一个连票出完后,两车次一起解锁。 : 两个条件都满足,应该就可以解决你那个问题。
|
l******a 发帖数: 10467 | 43 发现独眼讲的我居然能明白一点了, 那谁, 都打赌了, 人也应战了, 上吧
[发表自未名空间手机版 - m.mitbbs.com] |
d***a 发帖数: 13752 | 44 interlocked不是锁,是atomic operation。
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我看基本上都不会。 : 会的话还讨论啥锁不锁的?interlocked本身就是锁了,而且是最低粒度锁。 : 后面区段没有票再把前面的InterlockedIncrement还回去。 : 最差性能是前面区段都有票,最后一个没票。要基本上Interlock两次。 : 区段数就是停靠站数加一。和联程票有关系么? : 这么做,已经比现有的方案好多了。这么简单的,goodbug懂么?
|