支持通用框架的threadpool代码
来源:互联网 发布:澳洲甲级联赛角球数据 编辑:程序博客网 时间:2024/05/20 05:30
在编写服务器时,很多人会考虑到应用线程池来解决多线程的问题,当然我也越到了这个问题,所以顺便查找了一下linux的通用框架线程池,
并花了两天把它实现了出来,大体过程描述可以在
http://blog.csdn.net/hwalk/archive/2007/06/18/1657110.aspx 这个网址中查看流程,代码部分可以在我的资源:
http://jaff20071234.download.csdn.net/ 中下载到。
下面是这两天中log的描述:
------2010-12-1------
线程池稍微模型,但是明显存在的一个大问题是---
我的线程类实现的机制有问题:在每个start函数中创建线程,在创建线程之前,调用了sem.wait()函数,这样的话,主线程
在创建第一个thread的start函数就wait在哪里,主线程无法继续走下去了 。。。悲哀,明天继续考虑其他的方式。
---shawn
------2010-12-2------
今天已经写的差不多了,还有一些内在的小bug需要优化,可以在http://www.oschina.net/code/snippet_102078_2072或者
http://jaff20071234.download.csdn.net/可以下载到该线程池资源。
------2010-12-3------
突然又发现了一个问题,线程池内创建的线程无法具有可重用性。今天起开始改进,还有数据结构可以重新调整,查询,添加和删除的
次数比较多,所以可以尝试采用关联容器,或hash 。
bug:每次创建了这么多线程当用完后,便都没有了,虽然也没有释放线程资源,但是也不能继续使用了,所在考虑在routine中添加while循环通过调用exitthread设置循环变量为false来解决这个问题,中间差点放弃了,以为pthread很有限制,还是个人思维的限制啊 ~~·
okay,今天算是落幕了,性能测试也结束了,这个小小的线程池代码对我来说还是有挑战性的,代码可以在oschina上下载到所有的。
在去吃饭的路上,突然想起代码部分存留的唯一的一个bug,这次应该很确认了,虽然基本上没问题,但是为了以防万一,在0.1毫秒情况下
可能会发生的意外,我又添加了一个互斥量来解决这个问题。应该是彻底结束了,先玩转自己写的threadpool,好好享受n多线程执行n多任务的爽歪歪的感觉吧 ~~~hoho ~~~
- 支持通用框架的threadpool代码
- 支持通用框架的threadpool代码
- 爬取网页的通用代码框架
- 通用的加入收藏夹代码,可以支持FF,IE,OP
- Python网页爬取的通用代码框架
- 通用在线播放代码(支持firefox 与 IE)
- 基于Eclipse的通用语言支持平台的框架正在酝酿中....
- 基于boost asio实现的支持ssl的通用socket框架
- 基于boost asio实现的支持ssl的通用socket框架
- 基于boost asio实现的支持ssl的通用socket框架
- 基于boost asio实现的支持ssl的通用socket框架
- PhpStorm支持CodeIgniter框架的代码智能提示
- JDBCUtils 的通用代码
- javascript原生代码实现通用运动框架
- J2ME的通用LOG框架
- J2ME的通用联网框架
- J2ME的通用联网框架
- J2ME的通用联网框架
- 怎样恢复"显示桌面"快速启动按钮
- MongoDB的Java驱动使用整理
- Mainsoft的Grasshopper让你可以使用C#编写Java可以调用的类库(免费了!)
- 函数指针
- 常用的计算机英语(全集)
- 支持通用框架的threadpool代码
- 我的“云”应用体验
- Android中如何取得联系人,如何得到一个联系人下面的多个号码
- html页面重组技术
- Servlet_JSP深入详解_基于Tomcat的Web开发(笔记)
- ubuntu10.04安装virtualbox虚拟机
- Android下Content Provider使用
- WER
- dos命令