由买买提看人间百态

topics

全部话题 - 话题: 死锁
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
g*****g
发帖数: 34805
1
来自主题: Programming版 - 排队法是解决不了问题的
如果你设timeout, 是不会出现你说的这种情况的。你说的这种情况发生就是死锁了。
一直呀,不是一次。
而且不管你失败不失败,顺序锁,就可以保证你说的情况不发生。
“然后一直没人拿A,B,结果两个事务下单的人就抓狂了,明明
有票,就是拿不到”
z****e
发帖数: 54598
2
而且路经权重必需最短,这个要求很reasonable
没有人会买绕道票的
这个要求加上去,很容易就死锁了
z****e
发帖数: 54598
3
显然么
我从北京回家,你让我先经过广州,那我肯定不干
现在全国八纵八横,这里面没有死锁我就不信
z****e
发帖数: 54598
4
这个需求加上去,直接挂了
图论最短路径到现在理论都无解啊
除了穷举,但是一旦穷举的话
查票出票锁票就很恶心了,并发上5w达成死锁没问题

了。
q*c
发帖数: 9453
5
不能联票那就太容易了吧,每条线一个服务器数据库。。。
不过你基本上买了前段的票就没后面的,娃哈哈, 然后不断退票买新票 进入史无前例
的人工死锁局面。。。
z****e
发帖数: 54598
6
我现在有极强烈的预感
如果不挑硬件,那也就是一个instance的话
500w/s光查恐怕都撑不住
一个cpu估计是不够的
如果多个cpu,这里有调度的问题
很容易会死锁
z****e
发帖数: 54598
7
你这种就是属于典型上下文不看就开始扯淡的
我现在不需要跟你说那么复杂
就假设你们做的cache都能成立
好吧
我告诉你,500w/s的数量级
就是最简单的hash都能算死你,让你直接崩掉
不信写出来试试,这里大概有50个车站,估计还不止
那来回就有50*49这里就大概2500个路径要存了
hash假设这里无碰撞,这个最理想了,不算难为你了
就是这样,我还是觉得500w/s是找死的节奏
也就是光查都不够
如果是一个cpu的话,基本上没戏,两个cpu就要处理死锁的问题
事实上这里动态路径一定存在
a->b->c->d->e
中间如果c->d段没票了,有人要买从a->e段的票
这个时候必须绕道,你怎么办?
这个时候就要近似解,这个时候就两种可能
当场算,或者再从一个cache中取,当场算500w/s不用说了,肯定死
从cache中取的话,那就不只2500个组合了,上5000个小意思
这里又有碰撞问题
我现在不需要说太复杂的东西,就是最简单的需求
500w/s,就撑不住了
z****e
发帖数: 54598
8
来自主题: Programming版 - 12306哪里有什么死锁问题!
老魏要做到REAL TIME
你的方案是异步,回避了类似的问题
l*****9
发帖数: 9501
9
来自主题: Programming版 - 12306哪里有什么死锁问题!
real time是扯淡。十分钟出结果怎么不行了?老魏搞了半天就是个计数器,离卖票系
统还差十万八千里呢
z****e
发帖数: 54598
10
来自主题: Programming版 - 12306哪里有什么死锁问题!
g*****g
发帖数: 34805
11
来自主题: Programming版 - 12306哪里有什么死锁问题!
就是说明太监扯谈罢了,看来大家都明白了,我目的就达到了。他不要脸我还能把它怎
样。
T********i
发帖数: 2416
12
来自主题: Programming版 - 12306哪里有什么死锁问题!
草泥马的你还要脸不要脸?
l*****9
发帖数: 9501
13
来自主题: Programming版 - 12306哪里有什么死锁问题!
客户可以提出组合票,多次中转。系统实现起来不涉及图
z****e
发帖数: 54598
14
来自主题: Programming版 - 12306哪里有什么死锁问题!
这个帖子很精辟
难道不是么?
老魏搞了半天就是个计数器,离卖票系统还差十万八千里呢
g*****g
发帖数: 34805
15
来自主题: Programming版 - 12306哪里有什么死锁问题!
是个太监版的计数器,不保证公平,也不保证票都能出。
S*A
发帖数: 7142
16
来自主题: Programming版 - 测试用例在此,看还有什么说的。
要看冲突情况了。这个问题就跟 spinlock 要循环几次
是一样的啊。但肯定不会死锁。
a***n
发帖数: 538
17
来自主题: Programming版 - 测试用例在此,看还有什么说的。
嗯,确实不会有不出票的情况。不过所有的票要排序出,否则会有可能两个线程死锁。
而且还是有可能第三个人把票抢走了。
L*****e
发帖数: 8347
18
来自主题: Programming版 - 说同步比异步快的根本不懂网站
那就更不理解了,既然是累积的,干嘛堆到一天中来处理?而且backgroud check需要
同步干嘛,不立刻给结果别人要接别的地儿的offer了?然后是同步45分钟,异步3分钟
出结果,只能说明一个问题,你们的同步写的有问题,每个candidate的backgroud又不
是耦合数据,你们还做出死锁来了?还是说这几千人之间有各种各样亲戚关系,公司的
雇佣规则是五服以内的亲戚不能在同一公司打工,所以数据是强耦合数据了?
还是说虽然广告是几千openings,但是位置实际上只有一个,你们做的是几千人的抢位
置系统,backgroud check先做完的先得?

★ 发自iPhone App: ChineseWeb 8.2.2
n*****t
发帖数: 22014
19
单一个车次不存在抢票,按次序来就是了,一个线程管一个车次,一台机子管几个车次
,前端分门别类发请求就是了。这也是古德八最原始的想法,3000 台机子搞定 12306
,拿钱走人。
实际情况有那么简单吗?联程、邻座,这些都要跨数据库或者线程或者服务器,怎么协
调调度,怎么避免活锁死锁?
z****e
发帖数: 54598
20
来自主题: Programming版 - 好吧,Disable GC的问题
re这个
内存泄露,死锁都是一般大项目中灰常头疼的问题

dump
b********e
发帖数: 595
21
来自主题: Programming版 - 好吧,Disable GC的问题

死锁容易定位,tomat直接kill -3, jboss通过jmx能看到heap dump, tda一看就能看出
来,查内存泄漏的确是个力气活
s*****r
发帖数: 43070
22
这要羡慕死锁男了,锁男最期盼的就是面试妹子
这边的锁男饥渴地讨论东莞小姐,气质啥都太高大上了,肤白胸大才是锁男关注的
g*****g
发帖数: 34805
23
来自主题: Programming版 - 我来说说go的目标对手吧
光executor, task之间无关的都不好意思说是多线程。怎么也得是一堆的Future,
CountDownLatch, Lock, 在threadpool里还有先后关系,一不小心会死锁的才能叫多线
程。
n****1
发帖数: 1136
24
来自主题: Programming版 - 我来说说go的目标对手吧
这个我才发现, 震惊了.不过还好是library, 不是language primitive. 莫非要程序员
手动避免死锁?
可能像java里面的jni允许手动管理内存一样, 不想把事情做绝,但我感觉后患无穷.
H****S
发帖数: 1359
25
Semaphore是non-reentrant的,参考以下代码:
def foo() {
println("smile")
super.foo()
}
一个binary semaphoreh会出现死锁。
i**p
发帖数: 902
26
来自主题: Programming版 - C++ mutex vs Java synchronized method
Java synchronized method 在同一thread里是可以多次进入的. 锁是在thread上的.
C++ mutex 在释放之前被同一thread再次调用会造成死锁, 它是锁在mutex这个变量上
的.
请评论.
z****e
发帖数: 54598
27
举个例子
class A
A有个对象是a
如果你啥都没做的话
那么这个a并不是线程安全的
为了线程安全,人们想出了各种方法
比如一种线程安全的机制就是lock
但是lock会带来各种狗血问题,比如死锁
而另外一种机制就是immutable
每个thread访问时候,拷贝一份副本就是了
但是这也会带来各种问题,而且不利于理解
fp的狂徒居然发疯了一样要求人们接受什么都是常量的想法
神经病
然后spring什么则是不做控制,你自己要留意
这样就加重了你写代码时候的负担,等于什么都没有做
然后node干脆就干掉多线程,用单线程来做
多线程启动多个process,但是这样的话
你自己要去管理process,以发挥最大机能
尤其是多个cpu多个core的环境下,也麻烦
然后ejb说我可以保证每个instance,一次只会被一个thread所访问
就木有问题,但是这样并发量大的时候,有些操作会导致thread堵塞
就是同步操作,所以ejb并没有很好滴address大并发的问题
虽然提出的构想和目标很美好,但是实现的手段不够好
很多人还是选择了spring那些
但是有了异步之后,大量block的操作... 阅读全帖
z****e
发帖数: 54598
28
一般对于java 内存的评估主要介于两点
一点是怀疑有memory leak,这个对系统伤害很大
所以监控看看有没有什么问题,还有死锁之类的
但是现在都lock free了,一般也不太容易搞出后者来
另外一点是gc的停顿时间,这个对于一些游戏的server来说
会比较敏感,所以会监控看看gc需要多长时间
但是你这个貌似不是游戏也不是什么memory leak
不太明白你为啥要去监控内存?
g*****g
发帖数: 34805
29
来自主题: Programming版 - 转行的不应该看不起科班出身的
还分析哪?你丫弄个系统都不保证不死锁活锁,还看个屁呀。
g*****g
发帖数: 34805
30
做个thread dump, visualVM 就可以查有没有死锁。至于race condition是没啥软件能
查。
r***s
发帖数: 737
31
死锁好办,每次acquire lock不成功的话走一下waiting graph 看有没有环就是了。
有现成工具。不满意的话自己用jvmti写一个
http://stackoverflow.com/questions/8126711/get-deadlock-detecti
race condition比较难找。一般是用function test来找。

,
r***s
发帖数: 737
32
您老还是找本分布式数据库的教课书看看吧
看书不丢人
分布式系统里这些问题怎么解决很多年前就有很成熟的方案了
现在大家不用原因是在表很大的情况下的速度问题, 以及速度
问题带来的死锁问题,而不是在分布式系统下transaction 没法做的问题。
c*********e
发帖数: 16335
33
来自主题: Programming版 - 讲一个单进程死锁
仔细讲讲?
W***o
发帖数: 6519
34
来自主题: Programming版 - 讲一个单进程死锁
一边吃一边吐,再把吐的吃进去这样循环?
b*******s
发帖数: 5216
35
来自主题: Programming版 - 讲一个单进程死锁
这个属于没经验
t**8
发帖数: 4527
36
来自主题: Programming版 - 讲一个单进程死锁
recursive
c*********e
发帖数: 16335
37
来自主题: Programming版 - 讲一个单进程死锁
grep -i keyword -R .
或者
grep -i keyword -R . >> output.txt
有问题吗?
c*********e
发帖数: 16335
38
来自主题: Programming版 - 讲一个单进程死锁
recursive,搜索完了不就完了吗?
h**********c
发帖数: 4120
39
来自主题: Programming版 - 讲一个单进程死锁
你确信你对你说的话很确定?
h**********c
发帖数: 4120
40
来自主题: Programming版 - 讲一个单进程死锁
https://zh.wikipedia.org/wiki/%E6%AD%BB%E9%94%81
不过也许我和你的区别是我实际去google 了一下
https://zh.wikipedia.org/wiki/%E6%AD%BB%E9%94%81
A*********l
发帖数: 2005
41
来自主题: Programming版 - 讲一个单进程死锁
这个不是recursive,这个是正反馈:
grep不停的把grep到的东西写进同目录下的输出文件中,又会从这个输出文件中继续
grep(显然这个是一定会grep到结果的),然后继续写,继续grep,可以说是某种意义
上的死循环。
根本原因就是“搜索完了”这件事就不会发生。
h**********c
发帖数: 4120
42
来自主题: Programming版 - 讲一个单进程死锁
耍赖的讲,讲一个进程,process不等没有讲多个线程,threads,wiki也不是教科书,
教科书还要改行星的数量呢。
没有其他的选手再猜猜出题人还有什么考点
l*********s
发帖数: 5409
43
来自主题: Programming版 - 讲一个单进程死锁
re, 正解
l*********s
发帖数: 5409
44
来自主题: Programming版 - 讲一个单进程死锁
re, 正解
l*********s
发帖数: 5409
45
来自主题: Programming版 - 讲一个单进程死锁
re, 正解
l*********s
发帖数: 5409
46
来自主题: Programming版 - 讲一个单进程死锁
re, 正解
c*********e
发帖数: 16335
47
来自主题: Programming版 - 讲一个单进程死锁
grep -i keyword -R . > ../output.txt
这个该行了吧?
b*******s
发帖数: 5216
48
来自主题: Programming版 - 讲一个单进程死锁
--exclude=
most people use ctags will need this
b*******s
发帖数: 5216
49
来自主题: Programming版 - 讲一个单进程死锁
alias GREP='grep -R --exclude="tags" --include="*.cpp" --include="*.h" --
include="*.c" --include="*.py"'
copied from my .bashrc
b*******g
发帖数: 603
50
单线程当然是支持的,但是throughput肯定不行,所以你尿遁了。SSA的fix是肯定不行
的,在某些输入底下会一直死锁。不服你让他上来现身说法,正确性这种东西是没有概
率一说的。
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)