## 虚拟世界中的幻想与政治:摘要 亨利·詹金斯和彼得·路德洛通过对《第二人生》和《模拟人生在线》中的事件(特别是正义联盟大学(JLU)争议和阿尔法维尔选举)的反思,探讨了虚拟世界中幻想与政治的碰撞。他们认为,这些事件突显了不同玩家动机和“游戏”——从认真的角色扮演到探索禁忌幻想——在开放式在线环境中不可避免的冲突。 这两个案例表明,像《第二人生》这样的虚拟世界支持多样化的目标和叙事,反映了约查伊·本克勒的“网络财富”。虽然这种多样性可以促进积极的公民参与(例如,哈利波特联盟利用虚构身份进行行动主义),但也可能助长有问题行为。JLU事件,源于超级英雄幻想,引发了对道德确定性、监控以及善意的干预可能变得具有破坏性的问题的思考。 作者强调需要批判性地审视驱动玩家行动的潜在幻想,并指出并非所有叙事都具有同等价值。他们质疑追求秩序本身是否会成为一种破坏形式,以及恶意捣乱有时是否是对公司控制的反应。最终,他们认为,随着虚拟世界日益融入我们的生活,并对线上和线下的行为产生影响,理解这些动态至关重要。
## std::shared_mutex: C++ 中的读写锁
本文探讨了 `std::shared_mutex`,这是 C++17 的一项特性,为主要读取的数据提供了改进的并发性。与提供独占访问的 `std::mutex` 不同,`std::shared_mutex` 允许多个读取者同时访问资源,同时确保写入者拥有独占访问权。
其核心优势在于,在频繁读取和不频繁写入的场景中(例如缓存、配置数据或统计信息),可以提高吞吐量。基准测试表明,在读取密集型工作负载中使用 `std::shared_mutex` 代替 `std::mutex` 可以显著提高性能(在某个示例中,运行时从 285 毫秒减少到 102 毫秒)。
关键注意事项包括避免递归锁定以及无法在潜在死锁的情况下将共享锁升级为独占锁。虽然 `std::shared_mutex` 会引入一些开销,但它仍然是一个有价值的工具,尤其是在优先考虑简单性时。
尽管 C++20 及更高版本引入了新的并发特性(例如 `std::jthread` 和信号量),但 `std::shared_mutex` 仍然是有效地管理主要进行读取操作的共享状态的实用解决方案。