- 论坛徽章:
- 2
|
回复 #1 @小天@ 的帖子
关于boost.thread……
使用它的目的是什么?
如果仅仅是为了跨平台, 而且不在意使用LGPL的话, 可以考虑pthread win32。
btw: boost的许可证的内容我现在都不明白………… 有人可以指点指点么~~~
如果觉得C的api容易泄露资源, 想使用C++的RAII来协助开发, 也可以使用:
pthread + Loki::ScopeGuard
ScopeGuard是Loki中一个很小的库, 只需要2个头文件, 使用MIT许可证。
pthread_mutex_t* m = ...;
{
pthread_mutex_lock(m);
LOKI_ON_BLOCK_EXIT(m,pthread_mutex_unlock);
// ... 保护区域
} // 无论以何种形式(longjmp除外)退出作用域时, 会调用pthread_mutex_unlock(m);
除非你真的想以OB的方式进行多线程开发——那时候可以考虑使用boost.thread—— 否则可以使用其他一些更轻量的方案。
幸好boost.thread是以OB形式来包装的。
要是它搞成所谓的OO形式, 提供什么Runnable、Thread 让客户代码继承 ... —— 我就直接推荐你不要用boost.thread了 |
|