delphi,IOCP之高效线程池[2]

本文档展示了如何使用Delphi实现一个基于IO完成端口(IOCP)的高效线程池。详细定义了TQsThreadPool类,包括创建线程池、开始和停止线程池、处理线程的开始和结束、处理IO操作等功能。
摘要由CSDN通过智能技术生成

{******************************************************************************}
{ @UnitName     : uQsThreadPool.pas                                            }
{ @Project      : QsIOCP 1.0                                                   }
{ @Copyright    : -                                                            }
{ @Author       : 奔腾的心(7180001)                                            }
{ @Description  : QsIOCP 线程池处理类                           }
{ @FileVersion  : 0.0.0.1                                                      }
{ @CreateDate   : 2011-07-04                                                   }
{ @Comment      : -                                                            }
{ @LastUpdate   : 奔腾的心(7180001), 2011-07-18                                }
{******************************************************************************}
unit uQsThreadPool;

interface

uses
  Windows, SysUtils, Classes;

const
  // The dwStackSize parameter specifies the initial reserve size of the stack.
  // If this flag is not specified, dwStackSize specifies the commit size.
  (*
    将指定大小的堆栈在虚拟内存中分配,并且初始只映射系统缺省页数的物理内存
   (大概是两个页),随着堆栈使用的增大,系统根据堆栈物理内存页后方的设定
    为PAGE_GUARD属性的页触发来把更多的物理内存映射到后续的页。
  *)
  STACK_SIZE_PARAM_IS_A_RESERVATION = $00010000;
  (* 工作线程退出 *)
  IO_WORDTHREAD_EXIT                = $FFFFFFFF;

type
  IO_WHILE_TYPE = (
    IO_WHILE_NONE,
    IO_WHILE_CONTINUE,
    IO_WHILE_BREAK
    );

  PQsThreadItem = ^TQsThreadItem;
  TQsThreadItem = record
    pNext:            PQsThreadItem;
    pOwner:           Pointer;
    ThreadHandle:  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值