我对 Loki 库和新标准 C++11 有一些疑问。
我的第一个问题是关于LevelMutex
图书馆的功能。
LevelMutex
直接使用CRITICAL_SECTION
Windows 上的 apthread_mutex_t
和 Linux 中的 a 来实现功能。这些课程设计得非常好,但我的脑海中仍然存在一个问题。现在我们在新标准中有一个全新的包装器 ( std::mutex
) 是否值得替换依赖于平台的低级对象?如果不是,为什么?我的观点是——我们可以在 Loki 中删除大量编译器检查——我们可以保持 Loki 的最新版本,并且当标准库中发生更改时,所有更改都将推送到 Loki——我们可以使用std::mutex
Loki 中的异常。
我知道这std::mutex
只是平台互斥对象的包装器,异常也是系统特定错误的包装器,但仍然......同样的问题适用于Threads.h
.
我的第二个问题是关于SmartPtr
在 Loki 中实现的。鉴于我们有
shared_ptr
,unique_ptr
等,你认为值得使用这个实现吗?如果是,为什么?如果不是,我认为稍微重写 LockingPtr 实现以获得线程安全 shared_ptr 是个好主意?
我的最后一个问题是关于std::thread
C++11 标准中的新功能。我正在考虑为这个特定功能编写策略类,例如能够创建可连接线程或可拆卸线程。在您看来,为哪些部分std::thread
创建政策会很有趣?
提前感谢您的回答!