h*o
2 楼
mark my word.
m*d
3 楼
否则太多Chiglish岂不是很不好
s*r
4 楼
大家接着奔
XChain
我
XChain
我
n*x
5 楼
本人纯凑绕闹,不倾向任何一方。
系统主要特点:
- 多线程。(老魏没有给出具体多少个线程,假定100个吧。我的12 core intel xeon轻
轻松松100 thread)
- 无锁。
- 单机。
数据结构:
1. 全国1000条线 (X1, X2, X... , X1000), 每条20个区段 (S1, S2, S3... S20)。
2. 每条线的每个区段的票的总数计为:T[X1,S1], T[X1, S2]....... T[X1000, S20]
抢票程序(注意举得例子是联票)
1. 100个thread处理收到的请求
2. 每个请求包括三个参数(线路, 起始站,结束战). 比如(234次列车, 济南, 上
海)。 (注意, 234次列车是从沈阳出发,到上海的, 济南是第5个区的开始,上海最
后一个区段的结束)
3. 计算过程就是把234次列车从济南到上海的每个区段的票数做interlocked.
decrement, 如下:
- Interlocked.Decrement( T[X234,S5] )
- Interlocked.Decrement( T[X234,S6] )
- Interlocked.Decrement( T[X234,S7] )
.......
- Interlocked.Decrement( T[X234,S20] )
4. 如果每个interlocked.decrement后的结果还大于0,表示可以出票。 如果有任何一
个环节计算后<0,那么抢票失败,并且要对前面decrement的全部做increment.
5. 北京->上海。 用户选择: 北京-〉济南, 济南-〉上海。 每一张票都可重复step
#3.
方案的本质:
- 就是对一个巨大的内存空间做interlocked加减法。
- 系统的性能由 hardware决定。 100线程,每个需要每秒处理50000个请求。
- 这个方案人人都写得出来。
大家说说目前的硬件可行吗?
缺点:
- 单点失败整个系统失败。 老魏说是100不遇的情况,不考虑。
- 只interlock区段,不interlock整个路线。中途失败需要increment之前所有
decrement过的。 会导致本来有票结果出现没票的结果。
系统主要特点:
- 多线程。(老魏没有给出具体多少个线程,假定100个吧。我的12 core intel xeon轻
轻松松100 thread)
- 无锁。
- 单机。
数据结构:
1. 全国1000条线 (X1, X2, X... , X1000), 每条20个区段 (S1, S2, S3... S20)。
2. 每条线的每个区段的票的总数计为:T[X1,S1], T[X1, S2]....... T[X1000, S20]
抢票程序(注意举得例子是联票)
1. 100个thread处理收到的请求
2. 每个请求包括三个参数(线路, 起始站,结束战). 比如(234次列车, 济南, 上
海)。 (注意, 234次列车是从沈阳出发,到上海的, 济南是第5个区的开始,上海最
后一个区段的结束)
3. 计算过程就是把234次列车从济南到上海的每个区段的票数做interlocked.
decrement, 如下:
- Interlocked.Decrement( T[X234,S5] )
- Interlocked.Decrement( T[X234,S6] )
- Interlocked.Decrement( T[X234,S7] )
.......
- Interlocked.Decrement( T[X234,S20] )
4. 如果每个interlocked.decrement后的结果还大于0,表示可以出票。 如果有任何一
个环节计算后<0,那么抢票失败,并且要对前面decrement的全部做increment.
5. 北京->上海。 用户选择: 北京-〉济南, 济南-〉上海。 每一张票都可重复step
#3.
方案的本质:
- 就是对一个巨大的内存空间做interlocked加减法。
- 系统的性能由 hardware决定。 100线程,每个需要每秒处理50000个请求。
- 这个方案人人都写得出来。
大家说说目前的硬件可行吗?
缺点:
- 单点失败整个系统失败。 老魏说是100不遇的情况,不考虑。
- 只interlock区段,不interlock整个路线。中途失败需要increment之前所有
decrement过的。 会导致本来有票结果出现没票的结果。
g*g
8 楼
你就2万个数,随机取20个锁更新,看看能有多快就知道了。别忘了这还不能保证座位
。处理输入输出都有开销。
。处理输入输出都有开销。
s*r
13 楼
我点名darkarchon奔咸蛋超人遮眼照。。哈哈
q*c
14 楼
d*n
16 楼
。。碎大师你的身材怎么飘忽不定啊?一会猛男一会小清新一会星爷一会高僧
你的点奔应该用在lanlan身上,别在我身上浪费了
你的点奔应该用在lanlan身上,别在我身上浪费了
i*i
29 楼
(s1 to s20) as a whole piece has to be locked before manipulation.
lock / atom operation on a part cannot guarantee the overall operation is
correct.
cs 102.
。
【在 n**x 的大作中提到】
: 本人纯凑绕闹,不倾向任何一方。
: 系统主要特点:
: - 多线程。(老魏没有给出具体多少个线程,假定100个吧。我的12 core intel xeon轻
: 轻松松100 thread)
: - 无锁。
: - 单机。
: 数据结构:
: 1. 全国1000条线 (X1, X2, X... , X1000), 每条20个区段 (S1, S2, S3... S20)。
: 2. 每条线的每个区段的票的总数计为:T[X1,S1], T[X1, S2]....... T[X1000, S20]
: 抢票程序(注意举得例子是联票)
lock / atom operation on a part cannot guarantee the overall operation is
correct.
cs 102.
。
【在 n**x 的大作中提到】
: 本人纯凑绕闹,不倾向任何一方。
: 系统主要特点:
: - 多线程。(老魏没有给出具体多少个线程,假定100个吧。我的12 core intel xeon轻
: 轻松松100 thread)
: - 无锁。
: - 单机。
: 数据结构:
: 1. 全国1000条线 (X1, X2, X... , X1000), 每条20个区段 (S1, S2, S3... S20)。
: 2. 每条线的每个区段的票的总数计为:T[X1,S1], T[X1, S2]....... T[X1000, S20]
: 抢票程序(注意举得例子是联票)
g*g
33 楼
And if you decrement at will and rollback when hitting a zero counter.
Lots of requests will fail although there are actually tickets left, just
temporarily booked and released shortly after. No fairness.
【在 i**i 的大作中提到】
: (s1 to s20) as a whole piece has to be locked before manipulation.
: lock / atom operation on a part cannot guarantee the overall operation is
: correct.
: cs 102.
:
: 。
Lots of requests will fail although there are actually tickets left, just
temporarily booked and released shortly after. No fairness.
【在 i**i 的大作中提到】
: (s1 to s20) as a whole piece has to be locked before manipulation.
: lock / atom operation on a part cannot guarantee the overall operation is
: correct.
: cs 102.
:
: 。
d*n
46 楼
灰常灰常养眼。。。赞美女大方奔
l*g
50 楼
我没有和乐器合影啊,我有和西瓜的墨镜照。
t*o
58 楼
佳佳妹,typical的四川妹。鼓掌也
w*g
64 楼
今天被人说了。。。其实平常就这么穿的啊,没想太多,主要是配合前辈们奔。。。删
了吧。。。
萌萌不乖了,要求重奔~~
了吧。。。
萌萌不乖了,要求重奔~~
相关阅读
问个简单问题dba和程序员,哪个是青春饭? (转载)word如何实现latex效果的文字排版?team buliding games 2Amex 开卡送1000刀 Gold Premier Card Match 75K points bonus这是C++的啥用法请教:记录访问者IP时,发生的奇怪问题!openMP or boost::thread (pthread) for multithreading ?a pointer to a const addr[C++] 入门级问题 increment and decrement operators问几个关于网页和HTML的问题现在的Top Coder还有意思吗有什么提高 RemoteDesktop 速度的 办法吗?请教一个static 函数的问题C++ timer class for multithreads?anyone knows what language google used for the chart in their finance page?std::map 为什么没有排序呢同学们,帮一把啊Haskell; Standard ML类语言的问题what is the most efficient way to trim a string in C++?