选pthread
- C++11 thread库里的future居然没不能做chain,也就是说你创建了一个future之后,只能用blocking的方式去等它的值算出来,要知道连node这种东西都能串联future了啊……
- C++11 thread库里居然没有shared_mutex,这种东西居然也能拖3年?
- C++11 thread库居然没有executor之类的thread pool,类比一下,有多少Java程序会去用光杆thread的?
- 在Linux/GCC/libstdc++下,C++11 thread库居然强制动态连接pthread,如果你编译连接的时候忘了-pthread参数,一直要到运行的时候才会报错,得多脑残的人才会把这个库做成这样?
- thread的一些基本属性列如优先级、CPU affinity之类的东西居然都没进标准,标准委员会留这么大个空白是打 算照顾8088上的DOS版么?
- 至于std::ref/cref之类的东西我就不吐槽了,毕竟这是C++语言的锅,轮不到thread库来背。
- 如果只在 Linux 下编程,那么 C++11 的 thread 的附加值几乎为零
选std::thread
- std::thread配合lambda表达式创建个线程运行,很方便!
- thread对象直接join或者detach,很方便!
- 使用thread再配合mutex的std::unique_lock和std::lock_guard使用,很方便!
- 使用thread再配合条件变量使用,很方便!
- 使用std::this_thread::sleep_for(xxx)休眠某段时间,很方便!
- std::thread在多数场景下已经够用,但是如果有更多需求,列如设置线程优先级,设置CPU亲和性,设置线程名字的东西,即便std::thread没有相关函数,但是可以获取std::thread的native_handle再进一步用Posix函数封装一下。
Reference
徐辰
程序喵大人
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END

















暂无评论内容