In contrast to threads, which are pre-emptive, coroutine switches are cooperative (programmer controls when a switch will happen). The kernel is not involved in the coroutine switches.
所以我觉得不用锁。
【 在 hgoldfish 的大作中提到: 】
:
: async/await 只是助记词,纯粹是编译器弱爆了才需要这俩。你可以试试去掉这两个助记词,会发现完全不会影响程序的可阅读性,反而更清晰了。所以在我看来,python, c#, js 还有现在 c 20 的 coroutine 都是走上了歧路。以前 python gevent 那种玩法才接近完美。
:
: coroutine 跟 thread 在实现上原本就是一样的,如果你不理解 coroutine 跟 thread 是一样的,你就没法理解 coroutine 为什么需要同步语义,等你写多了 corotuine 早晚有一天会出事的。试试解释一下如果 coroutine 没有 thread 的语义,goroutine 为什么要用 channel 这种消息管道,而不是直接传递值。
:
: --
: 灭绝人性啊
发自「今日水木 on HUAWEI G750-T01」
--
FROM 115.52.184.*