V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  movq  ›  全部回复第 7 页 / 共 74 页
回复总数  1480
1 ... 3  4  5  6  7  8  9  10  11  12 ... 74  
2023-02-18 15:27:35 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@yankebupt

你说的这个是你自己想的吧。我的意思是第一个筷子先阻塞式锁,第二个筷子非阻塞锁。你的说法是第一个筷子也非阻塞锁。

不过感觉先锁桌子,然后左右 tryLock 也是可以的。
2023-02-18 08:15:43 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@lessMonologue 笑死人,已 block😁
2023-02-17 23:46:47 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@Nerv 那你的意思是对凡是已经有定论的的东西都绝对不要提出个人想法是么
2023-02-17 23:45:50 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@Nerv 来 v 站发帖不就是为了看大家意见从而学习吗?光思考的话为什么要发帖子呢?我认为自己是对的不就行了
2023-02-17 23:20:16 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
我总结一下死锁和活锁的对比,以下来自于《 C++ Concurrency in Action 》

1.死锁没法救活,除非编程时就避免。这一点活锁有优势,因为活锁就算你编程时不避免,由于 CPU 的调度存在一定的偏差,也有可能可以自行脱离活锁。(可以看引用的“not-so-serious cases”)
2.死锁发生时因为是等待,所以不会自旋,不占 CPU ,这方面是比活锁好的。


> Deadlock - As you saw in chapter 3, in the case of deadlock, one thread is waiting for another, which is in turn waiting for the first. If your threads deadlock, the tasks they're supposed to be doing won't get done. In the most visible cases, one of the threads involved is the thread responsible for the user interface, in which case the interface will cease to respond. In other cases, the interface will remain responsive, but some required tasks won't complete, such as a search not returning or a document not printing.

> Livelock - Livelock is similar to deadlock in that one thread is waiting for another, which is in turn waiting for the first. The key difference here is that the wait is not a blocking wait but an active checking loop, such as a spin lock. In serious cases, the symptoms are the same as deadlock (the app doesn't make any progress), except that the CPu usage is high because threads are still running but blocking each other. In not-so-serious cases, the livelock will eventually resolve because of the random scheduling, but there will be a long delay in the task that got livelocked, with a high CPU usage during that delay.
2023-02-17 23:15:48 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@lessMonologue 这么说吧,不知道你哪来的莫名的优越感。

一开始你根本没看懂我在说什么,就打几个逗号表示无语,说每个人拿个筷子就能反驳我这种做法。结果反而让自己成了小丑。

后来又强行说什么「如果随机事件恰好相同呢?」这种脑残假设

我反驳之后又来信口开河说什么“恰好相反”,结果你对你的主张的论证漏洞百出

真是笑死人
2023-02-17 23:11:56 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@lessMonologue

你一边声称「懂得怎么避免死锁的人可以避免死锁」,然后又说「不懂活锁现象的人考虑不到随机时间」。

逻辑漏洞太多:
1. 这两句话跟活锁死锁哪个更严重根本就毫无关联。
2. 前后两句话本身也毫无关联,不懂在一起说想表达什么。

对 2 的证明:
「懂得怎么避免死锁的人可以避免死锁」,并不能否定「懂得怎么避免活锁的人也会考虑到随机时间」

对 1 的证明:
懂不懂得死锁活锁,只是一个专业知识的问题,和活锁死锁哪个严重,毫无关联,是在偏离讨论的问题。
2023-02-17 23:04:31 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@lessMonologue 你的主张比较牵强
2023-02-17 22:54:29 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@lessMonologue 为什么我设置的随机睡眠时间会每次都相同呢?那这个只能问是不是有这么弱的标准随机数库了
2023-02-17 22:53:18 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@shawnsh 感觉活锁的危害性是没死锁大的。如果进入了死锁,除非杀掉某个线程,不然解决不了问题。而活锁属于概率性问题。CPU 调度线程往往不会这么凑巧。调度差几个时钟周期就可以跳出活锁。应该不会持续太久。
2023-02-17 22:48:35 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@dcsuibian 你说的这个几个条件属于比较抽象的,我看了下 Wikipedia 和 Google 头几条,具体的例子里面貌似没人提到这个,就来问下大家什么看法
2023-02-17 22:46:45 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@bxb100 没抢到锁就设置随机睡眠时间应该可以吧
2023-02-17 22:44:44 +08:00
回复了 movq 创建的主题 程序员 哲学家就餐问题的一个解法
@lessMonologue 拥有一个筷子拿不到别的不就释放了吗,这样别的线程就可以拿到了
2023-02-13 22:26:22 +08:00
回复了 wangxiaoaer 创建的主题 iPhone 11 升级了 16.3
@dz5362 3GB RAM 不觉得杀后台影响体验吗
这网站一打开 safari 就全屏红色显示诈骗网站
2023-02-12 21:39:45 +08:00
回复了 chuwux 创建的主题 酷工作 [上海] 米哈游 miHoYo 2023.2.10 最新招聘信息来啦!(可内推哦)
2023-02-12 11:48:11 +08:00
回复了 lingyu 创建的主题 Apple M1 Macbook Air 购买问题
以前用的 intel 的 MacBook Pro 是整个 C 面都发热,冬天还可以暖手。M1 的跑 ffmpeg 只有功能键上方那一条金属感觉比较热,但不烫手
2023-02-12 11:46:24 +08:00
回复了 lingyu 创建的主题 Apple M1 Macbook Air 购买问题
m1 的 air 虽然没风扇,但我跑 ffmpeg 跑满 CPU 也不觉得太热。平时使用基本感觉不到热量,相反大冬天的冷得冰手。据我所知一般情况下 MacBook Pro 的风扇也是不转的,没必要买 pro
@taogen 要是跳槽又要背一遍
2023-02-10 10:48:33 +08:00
回复了 rqxiao 创建的主题 MySQL mysql 间隙锁
第一个事务后面有 SELECT * from tx_test;,所以要全锁住,不然不是 repeatable read
1 ... 3  4  5  6  7  8  9  10  11  12 ... 74  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3000 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 14:43 · PVG 22:43 · LAX 07:43 · JFK 10:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.