免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5445 | 回复: 16

[C++] 发布一个 Linux 下的 C++ 多线程库 [复制链接]

论坛徽章:
0
发表于 2010-08-22 20:13 |显示全部楼层
发布一个我自己业余时间编写的 C++ 多线程库 for Linux,这个库只有不到 1000 行源代码,封装了 pthreads 的常用功能(互斥器、条件变量、线程),实现了简单的线程池,并仿照 java concurrent 包编写了 BlockingQueue 和 CountDownLatch。库里的每个 class 都提供了使用样例。

这个库的内容:

* 整数的原子操作, AtomicInt32 和 AtomicInt64
* 线程,Thread
* 线程池,ThreadPool
* 互斥器与条件变量, MutexLock,MutexLockGuard 与 Condition
* 带调用栈信息 (stack trace) 的异常基类,Exception
* 仿 Java concurrent 的 BlockingQueue 和 CountDownLatch
* Singleton 与 ThreadLocal
注:我故意没有提供信号量 Semaphore 的封装。将来或许会增加读写锁的封装,如果我在博客中用到的话。

Thread 和 ThreadPool 的接口设计采用了《以 boost::function 和 boost:bind 取代虚函数》里提倡的风格,没有使用面向对象的继承和基类。

注意,CurrentThread 有一个 thread local 变量 t_threadName,其作用是在调试和分析 core dump 时打印线程的名称,例如:

(gdb) p 'muduo::CurrentThread::t_threadName'
$4 = 0x4057fe "ThreadPool2"

MutexLock,MutexLockGuard 与 Condition 的使用请参考《多线程服务器的常用编程模型》。

CountDownLatch 的使用样例见 test/BlockingQueue_test.cc

git 下载地址: http://github.com/chenshuo/recipes

浏览源代码: http://github.com/chenshuo/recipes/tree/master/thread/

这个库在 Debian Squeeze 和 Ubuntu 10.04 LTS 下编译测试通过,适用于 x86 和 x86-64 平台。

论坛徽章:
0
发表于 2010-08-22 20:15 |显示全部楼层
up.

论坛徽章:
0
发表于 2010-08-22 20:16 |显示全部楼层
good

论坛徽章:
0
发表于 2010-08-22 20:49 |显示全部楼层
谢谢分享!!!!!

论坛徽章:
26
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:1315-16赛季CBA联赛之天津
日期:2016-12-12 10:44:23
发表于 2010-08-22 20:59 |显示全部楼层
牛逼啊

论坛徽章:
0
发表于 2010-08-22 21:25 |显示全部楼层
很久很久以前,我也做过一个类似的. 不过我觉得boost太大,于是自己实现了一些功能. 后再出现了gcc4.4,于是我了...gcc4.4以后,里面有thread,mutex,function了...恶心的boost::bind也可以见鬼去了,因为有lambda了...

论坛徽章:
323
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
发表于 2010-08-22 22:14 |显示全部楼层
去看看,不过一般不太喜欢封装

论坛徽章:
0
发表于 2010-08-22 22:23 |显示全部楼层
刚在博客园看到,牛

论坛徽章:
0
发表于 2010-08-22 23:24 |显示全部楼层
与zthread比较起来, 这个库怎么样,,

线程库没经过详细测试, 还真是不敢用

论坛徽章:
0
发表于 2010-08-22 23:54 |显示全部楼层
回复 1# giantchen

顶!这个要支持一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP