有的。我举个栗子。
比如经典的有两个内存里的帐户 A 和 B,一个协程从 A 转帐给 B,另一个协程从 B 转帐给 A,如果是线程,那需要对这两个帐号加锁,让操作串行化。而协程天然是串行化的,在这里不需要加锁。
但是考虑上面那个转钱的动作,加和减都是网络操作。在 A-money 的时候,阻塞住了,另一个协程正在执行 A+money,此时仍然需要加锁。
所以协程减少了锁的使用,但没有锁是万万不行的。
用协程操作界面很爽。比如:
auto r = http.get(url);
updateGUI(r.json());
如果网络操作在线程里面,就没法更新 GUI 了。这里减少了锁的使用。
【 在 hyperLee (老李) 的大作中提到: 】
: 那跟我用线程有什么区别?
--
FROM 140.224.34.*