我知道我的理由不合理
前面都说了, 只是心理有点抵触, 让自己心里舒服点而已, 其实知道屁影响都没有
其实一个更荒谬的是, 其实这个锁是完全没必要的;因为我后来干脆使用了 current_thread 调度器, 如果保持 mutex guard 不跨越 await 点, 那其实等于这个 mutex 就根本不会有竞争, 用这个 Mutex 完全是因为rust 非要线程安全方式访问 static 变量而已.
这里换成 UnsafeCell 完全没任何问题, 但又要写一堆代码, 琢磨了一下就这么凑合得了 -- 好歹这样换成多线程调度器也不会出问题
【 在 tsa300 的大作中提到: 】
:
: 异步框架下都已经牺牲代码的安全性和一致性去追求锁性能了,还使用 std::sync::MutexGuard 就完全没法儿理解了,显然 parking_lot性能好得多,内存占用更少(1byte vs 40bytes),而且对同步原语的实现更完整(超时、公平锁、可再入锁、可选的死锁检测等等)
: 在真实世界的后端中,比同步锁vs异步锁开销对性能影响大得多的环节到处都是,使用同步锁给系统带来的问题比那点性能收益大远去了,这就是前文回复中为什么说异步编程用异步锁是最佳实践的原因。
--
修改:zylthinking2 FROM 114.246.100.*
FROM 65.49.223.*