作者回复: 文中已经讲了,Rust 的优点是所有方案都支持,缺点是你需要考虑合适的场景用合适的工具,另外 Rust channel 在某些情况下性能不如 golang;golang 的优点是简单,CSP 一招鲜,大部分场景 channel 都能很好适用,缺点是遇到 channel 不好解决的问题,或者效率不高的问题,就比较尴尬
作者回复: 👍
作者回复: 👍
作者回复: Duration 有 from_secs / from_millis 等方法,不必用 Duration::new,这个接口不直观。
作者回复: 对
作者回复: 👍
作者回复: 不分场合地使用 Relaxed,会导致不一致的更新;不分场合地使用 SeqCst,会导致性能问题。
作者回复: 不是。atomic operation 是硬件提供的无法被中断打断的指令,并不是去关闭中断。 这里我们用 atomic 实现的 mutex,就是一个 spinlock。
作者回复: 你可以详细看文档:https://doc.rust-lang.org/std/sync/atomic/struct.AtomicBool.html#method.compare_exchange
作者回复: 嗯