免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 28896 | 回复: 34
打印 上一主题 下一主题

线程池 + epoll 简单的实现 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-17 22:14 |只看该作者 |倒序浏览
这只是一个线程池的框架还有许多不足 : 没有实现server->client数据发送 , 还有许多细节没有完善。

Lock.cpp :      锁的操作 , 读锁可以并发 , 写锁独占.
Queue.h  :      队列的封装 , 队列的读和写都加了锁的保护.
Socket.cpp :   套接口的简单封装.
Thread.cpp :   线程的封装实现了些简单的线程停止,运行等功能 , 启动别的线程的时候需要继承次类.
Worker.cpp :  用户接口类 , 用户需继承此类。
ListenThread.cpp(继承Thread.cpp) : 服务器监听线程.如果有客户端连接通知ThreadPool类,由ThreadPool类进行任务分派.
TaskThread.cpp(继承Thread.cpp) : 具体任务类,负责接受客户端发送数据.
ThreadPool.cpp (继承Thread.cpp) : 线程池类负责启动别的线程 , 并且进行线程调度。首先启动ListenThread.cpp类,如果有客户端
连接ListenThread.cpp类发送信号通知ThreadPool.cpp类,收到信号再分配给TaskThread.cpp类,进行处理。如果没有空闲任务类,动态再
创建一定数目的任务类。

希望大家指出还有什么不好的地方 , 可以修改。
多谢
msn: guo.zm1983@hotmail.com

[ 本帖最后由 ruchong 于 2007-6-12 18:10 编辑 ]

MyLinuxThread5-25.tar.gz

10.09 KB, 下载次数: 1812

论坛徽章:
0
2 [报告]
发表于 2007-05-17 23:46 |只看该作者
鼓励一下。

论坛徽章:
0
3 [报告]
发表于 2007-05-18 09:13 |只看该作者

顶一下

前段时间 在一家公司试用期 他们就写有关于线程池的开发项目
我一去看了一个 月的代码呢 呵呵
看看 你的   呵呵  短时间不一定能完全看懂哦

论坛徽章:
0
4 [报告]
发表于 2007-05-18 09:20 |只看该作者

印度人都有RPWT。

印度人都有RPWT。这个是什么意思?
呵呵

论坛徽章:
0
5 [报告]
发表于 2007-05-18 09:34 |只看该作者

发错拉

不好意思 发 错拉

论坛徽章:
0
6 [报告]
发表于 2007-05-18 09:41 |只看该作者
其实这个代码挺简单的啊。
想到哪写到哪,以后再慢慢修改修改。
也希望各位指点一下。

论坛徽章:
0
7 [报告]
发表于 2007-05-18 13:44 |只看该作者
不是吧,楼主的思想跟我的居然接近到让我惊叹的地步!
有些文件名都一样!
呵呵,等我把自己那个线程池整理整理发上来,互相参考参考

论坛徽章:
0
8 [报告]
发表于 2007-05-18 13:48 |只看该作者
哈哈,好的好的。
互相学习学习。
还没想好server->client怎么传啊,正好学习学习。

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
9 [报告]
发表于 2007-05-18 15:00 |只看该作者

回复 1楼 ruchong 的帖子

原帖由 ruchong 于 2007-5-17 22:14 发表
这只是一个线程池的框架还有许多不足 : 没有实现server->client数据发送 , 还有许多细节没有完善。

Lock.cpp :      锁的操作 , 读锁可以并发 , 写锁独占.
Queue.h  :      队列的封装 , 队列的读和写都加 ...


支持原创,希望有比较详细的应用例子程序。

关于 server->client 数据发送,如果你喜欢远程调用机制,看看这个:
http://zhujiang73.cublog.cn

[ 本帖最后由 zhujiang73 于 2007-5-18 15:28 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2007-05-18 16:16 |只看该作者
新整的blog把代码放到上面了啊
http://blog.chinaunix.net/u1/39117/showart.php?id=304140

大家多多光顾....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP