c++中很好用的内存池封装,很好的解决反复new,delete带来的内存空间碎片问题,小内存,大内存都适用,里面做了直接申请空间和用内存池效率的对比,我们的项目就在用它,现分享出来,vc6上直接编译通过。
2023-10-20 08:00:07 20KB 内存池、防止内存碎片
1
通过1个简单的VC例程,演示了线程池的使用方法,以及线程池的函数用法。代码为VS2015工程,可直接打开编译。
2023-10-06 20:38:02 158KB C++ 线程池 VC
1
基于线程池和使用openssl加密的TCP文件传输工程源码
2023-09-06 22:58:22 43KB tcp/ip 网络 线程池 openssl
1
内容涉及到线程池,数据库连接池,状态机转换,是比较完整的网页服务器,可以在浏览器注册、登录以及浏览视频等
2023-08-30 15:16:51 55.6MB c++ 线程池 数据库连接池 状态机
1
运行环境: php+mysql 源码详细: 主要文件夹:zhizhuchi 蜘蛛池文件夹内: bianliang -变量文件,多用于“文章来源:<蜘蛛池_变量>”标签:<蜘蛛池_变量> cacheData -缓存文件,产生缓存,如见服务器卡,网页不继续生成,不自动更新,可以清理缓存文件。 domains -链接文件,用于存放站群域名。标签:<蜘蛛池_随机内链> duankou -端口文件,标签:<蜘蛛池_随机端口> images -图片文件,标签:<蜘蛛池_随机图片> juzi -句子文件,标签:<蜘蛛池_动态句子>,<蜘蛛池_句子> keywords -关键词文件包,存放关键词。 shipin -视频文件,标签:<蜘蛛池_随机视频> spider -链接文件,放寄生链接。 templates -模板文件。 wailian -外链文件,一般不用。 文件包存放,直接命名 1.txt 2.txt 格式一行一个,都是随机调用。
2023-07-10 17:33:53 3.05MB php 企业 网站 蜘蛛
1
百度强引蜘蛛程序易语言
2023-05-09 05:43:08 7.96MB 蜘蛛 蜘蛛池
1
用DELPHI 用于实现小票打印机无驱动打印,通过后台线程实现。封装了EPSON ESC/POS打印指令集。
2023-05-06 17:37:33 6KB pos 小票打印机 ESC/POS
1
33W条代理ip, 亲测有效(目前), 不保证以后会一直生效, 一共33W条支持http,https,socks 欢迎来踩
2023-05-05 23:18:31 22.53MB ip ip代理池 爬虫代理ip ip池
1
使用Druid数据连接池连接PostgreSQL简单例子,搭建一个简单测试环境
2023-04-19 22:00:16 5.2MB JAVA Druid 数据连接池 PostgreSQL
1
delphi线程池单元文件uThreadPool.pas,用法如下 type TRecvCommDataWorkItem=class(TWorkItem) public // updatetime,addtime:TDateTime; // orderid,ordertype,urljson,loadcount,savepath:string; url,Filename:string; total,order:Integer; _orderid:string; failedcount:Integer; IFCoverFile:Boolean; // 线程处理请求时触发的事件 procedure DealwithCommRecvData(Sender: TThreadsPool; WorkItem: TWorkItem; aThread: TProcessorThread); // 线程初始化时触发的事件 procedure TProcessorThreadInitializing(Sender: TThreadsPool; aThread:TProcessorThread); // 线程结束时触发的事件 procedure TProcessorThreadFinalizing(Sender: TThreadsPool; aThread:TProcessorThread); //任务队列空时触发的事件 procedure TQueueEmpty(Sender: TThreadsPool; EmptyKind: TEmptyKind); end; 先声明一个类 然后用法 FThreadPool := TThreadsPool.Create(nil); // 创建线程池 FThreadPool.ThreadsMin := 10; // 初始工作线程数 FThreadPool.ThreadsMax := 100; // 最大允许工作线程数 AWorkItem := TRecvCommDataWorkItem.Create; ISAllOverLoad:=False; AWorkItem.url:=urljson; AWorkItem.order:=i; AWorkItem.total:=JA.Count; AWorkItem.Filename:=savefilepath; AWorkItem._orderid:=orderid; AWorkItem.IFCoverFile:=IFCoverFile; FThreadPool.AddRequest(AWorkItem,True); // 向线程池分配一个任务 FThreadPool.OnProcessRequest := AWorkItem.DealwithCommRecvData; FThreadPool.OnThreadInitializing := AWorkItem.TProcessorThreadInitializing; FThreadPool.OnThreadFinalizing := AWorkItem.TProcessorThreadFinalizing; FThreadPool.OnQueueEmpty := AWorkItem.TQueueEmpty; 仔细看下线程池单元的函数说明轻松搞定。 procedure TRecvCommDataWorkItem.TQueueEmpty(Sender: TThreadsPool; EmptyKind: TEmptyKind); begin if EmptyKind=ekProcessingFinished then begin try if Assigned(geturl) then //存在的bug 如果下载文件存在的不行 begin //Sleep(200); //激活线程可能会发生在 休眠之前!! ISAllOverLoad:=True; if geturl.Suspended then //只有线程休眠了 才应该激活线程 否则不应该激活 geturl.Resume; end; finally end; end; end;
2023-04-13 14:54:51 28KB delphi线程池
1