📄 月光软件站 - 编程文档 - vc语言 - 一个好用的线程池.mht
字号:
From: <由 Windows Internet Explorer 7 保存>
Subject: =?gb2312?B?1MK54sjtvP7VviAtILHgs8zOxLW1IC0gVkPT79HUIC0g0ru49rrD08O1xA==?=
=?gb2312?B?z9+zzLPY?=
Date: Tue, 23 Oct 2007 12:17:56 +0800
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html";
boundary="----=_NextPart_000_004D_01C8156E.BE684730"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
This is a multi-part message in MIME format.
------=_NextPart_000_004D_01C8156E.BE684730
Content-Type: text/html;
charset="gb2312"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.moon-soft.com/doc/34506.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>=D4=C2=B9=E2=C8=ED=BC=FE=D5=BE - =
=B1=E0=B3=CC=CE=C4=B5=B5 - VC=D3=EF=D1=D4 - =
=D2=BB=B8=F6=BA=C3=D3=C3=B5=C4=CF=DF=B3=CC=B3=D8</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
<META =
content=3DVC=D3=EF=D1=D4,=D2=BB=B8=F6=BA=C3=D3=C3=B5=C4=CF=DF=B3=CC=B3=D8=
,=B1=E0=B3=CC,=CE=C4=D5=C2,=CF=C2=D4=D8 name=3Dkeywords>
<META content=3D=D2=BB=B8=F6=BA=C3=D3=C3=B5=C4=CF=DF=B3=CC=B3=D8 =
name=3Ddescription>
<META content=3D"MSHTML 6.00.6000.16544" name=3DGENERATOR></HEAD>
<BODY>
<CENTER>
<SCRIPT src=3D"http://www.moon-soft.com/top.js" =
type=3Dtext/javascript></SCRIPT>
</CENTER>
<DIV id=3Dheader align=3Dcenter>
<CENTER>
<TABLE style=3D"BORDER-COLLAPSE: collapse" cellSpacing=3D0 =
cellPadding=3D0 width=3D750=20
border=3D0>
<TBODY>
<TR>
<TD width=3D"100%">=C4=FA=B5=C4=CE=BB=D6=C3=A3=BA<A =
href=3D"http://www.moon-soft.com/">=CA=D7=D2=B3</A>-> <A=20
=
href=3D"http://www.moon-soft.com/doc/index.htm">=B1=E0=B3=CC=CE=C4=B5=B5<=
/A>-> <A=20
=
href=3D"http://www.moon-soft.com/doc/1_1.htm">VC=D3=EF=D1=D4</A>->=20
=
=D2=BB=B8=F6=BA=C3=D3=C3=B5=C4=CF=DF=B3=CC=B3=D8</TD></TR></TBODY></TABLE=
></CENTER></DIV>
<DIV id=3Dmain align=3Dcenter>
<CENTER>
<TABLE style=3D"BORDER-COLLAPSE: collapse" borderColor=3D#111111 =
cellSpacing=3D0=20
cellPadding=3D0 width=3D750 border=3D0>
<TBODY>
<TR>
<TD vAlign=3Dtop width=3D165>
<TABLE style=3D"BORDER-COLLAPSE: collapse" height=3D"100%" =
cellSpacing=3D0=20
cellPadding=3D0 width=3D165 bgColor=3D#f4f4f4 border=3D0>
<TBODY>
<TR>
<TD vAlign=3Dtop width=3D"100%">
<TABLE style=3D"BORDER-COLLAPSE: collapse" cellSpacing=3D0 =
cellPadding=3D3=20
width=3D"100%" border=3D0>
<TBODY>
<TR>
<TD width=3D"100%" bgColor=3D#000000>
<P align=3Dcenter><B><FONT=20
color=3D#ffffff>VC=D3=EF=D1=D4</FONT></B></P></TD></TR>
<TR>
<TD width=3D"100%">
<P align=3Dcenter></P></TD></TR>
<TR>
<TD width=3D"100%" bgColor=3D#000000>
<P><IMG height=3D13=20
src=3D"http://www.moon-soft.com/doc/images/d_1.gif" =
width=3D13=20
align=3Dmiddle border=3D0><FONT color=3D#ffffff>=20
=B1=BE=C0=E0=D4=C4=B6=C1TOP10</FONT></P></TD></TR>
<TR>
<TD width=3D"100%">=A1=A4<A=20
href=3D"http://www.moon-soft.com/doc/44487.htm">VC++=20
=D1=A7=CF=B0=B1=CA=BC=C7(=B6=FE)</A><BR>=A1=A4<A=20
=
href=3D"http://www.moon-soft.com/doc/45006.htm">=D3=C3Visual=20
C++=B4=F2=D4=ECIE=E4=AF=C0=C0=C6=F7(1)</A><BR>=A1=A4<A =
=
href=3D"http://www.moon-soft.com/doc/44559.htm">=C3=BF=B8=F6=BF=AA=B7=A2=C8=
=CB=D4=B1=CF=D6=D4=DA=D3=A6=B8=C3=CF=C2=D4=D8=B5=C4=CA=AE=D6=D6=B1=D8=B1=B8=
=B9=A4=BE=DF</A><BR>=A1=A4<A=20
=
href=3D"http://www.moon-soft.com/doc/44975.htm">=BD=CC=C4=E3=D3=C3VC6=D7=F6=
QQ=B6=D4=B6=D4=C5=F6=CD=E2=B9=D2=B3=CC=D0=F2</A><BR>=A1=A4<A=20
href=3D"http://www.moon-soft.com/doc/44453.htm">Netmsg =
=
=BE=D6=D3=F2=CD=F8=C1=C4=CC=EC=B3=CC=D0=F2</A><BR>=A1=A4<A=20
=
href=3D"http://www.moon-soft.com/doc/51433.htm">Windows=CF=FB=CF=A2=B4=F3=
=C8=AB</A><BR>=A1=A4<A=20
=
href=3D"http://www.moon-soft.com/doc/51434.htm">VC++=CF=C2=CA=B9=D3=C3ADO=
=B1=E0=D0=B4=CA=FD=BE=DD=BF=E2=B3=CC=D0=F2</A><BR>=A1=A4<A=20
=
href=3D"http://www.moon-soft.com/doc/44914.htm">VC++=D1=A7=CF=B0=B1=CA=BC=
=C7(=CB=C4)</A><BR>=A1=A4<A=20
=
href=3D"http://www.moon-soft.com/doc/44967.htm">=B7=C7=B7=A8=CC=BD=C8=A1=C3=
=DC=C2=EB=B5=C4=D4=AD=C0=ED=BC=B0=C6=E4=B7=C0=B7=B6</A><BR>=A1=A4<A=20
=
href=3D"http://www.moon-soft.com/doc/44966.htm">=D4=F5=D1=F9=D4=DAVC++=D6=
=D0=B7=C3=CE=CA=A1=A2=D0=DE=B8=C4=D7=A2=B2=E1=B1=ED</A><BR></TD></TR></TB=
ODY></TABLE><BR>
<TABLE style=3D"BORDER-COLLAPSE: collapse" cellSpacing=3D0 =
cellPadding=3D3=20
width=3D"100%" border=3D0>
<TBODY>
<TR>
<TD width=3D"100%" bgColor=3D#111111><FONT =
color=3D#ffff00>=A1=FA</FONT>=20
<FONT =
color=3D#ffffff>=B7=D6=C0=E0=B5=BC=BA=BD</FONT></TD></TR>
<TR>
<TD width=3D"100%">
<TABLE cellSpacing=3D3 cellPadding=3D0 width=3D"99%" =
border=3D0>
<TBODY>
<TR align=3Dmiddle>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/1_1.htm"><FONT=20
color=3D#000000>VC=D3=EF=D1=D4</FONT></A></TD>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/2_1.htm"><FONT=20
color=3D#000000>Delphi</FONT></A></TD></TR>
<TR align=3Dmiddle>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/3_1.htm"><FONT=20
color=3D#000000>VB=D3=EF=D1=D4</FONT></A></TD>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/4_1.htm"><FONT=20
color=3D#000000>ASP</FONT></A></TD></TR>
<TR align=3Dmiddle>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/5_1.htm"><FONT=20
color=3D#000000>Perl</FONT></A></TD>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/6_1.htm"><FONT=20
color=3D#000000>Java</FONT></A></TD></TR>
<TR align=3Dmiddle>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/7_1.htm"><FONT=20
color=3D#000000>Script</FONT></A></TD>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/8_1.htm"><FONT=20
=
color=3D#000000>=CA=FD=BE=DD=BF=E2</FONT></A></TD></TR>
<TR align=3Dmiddle>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/9_1.htm"><FONT=20
=
color=3D#000000>=C6=E4=CB=FB=D3=EF=D1=D4</FONT></A></TD>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/10_1.htm"><FONT=20
=
color=3D#000000>=D3=CE=CF=B7=BF=AA=B7=A2</FONT></A></TD></TR>
<TR align=3Dmiddle>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/11_1.htm"><FONT=20
=
color=3D#000000>=CE=C4=BC=FE=B8=F1=CA=BD</FONT></A></TD>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/12_1.htm"><FONT=20
=
color=3D#000000>=CD=F8=D5=BE=D6=C6=D7=F7</FONT></A></TD></TR>
<TR align=3Dmiddle>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/13_1.htm"><FONT=20
=
color=3D#000000>=C8=ED=BC=FE=B9=A4=B3=CC</FONT></A></TD>
<TD width=3D"50%"><A=20
=
href=3D"http://www.moon-soft.com/doc/14_1.htm"><FONT=20
=
color=3D#000000>.NET=BF=AA=B7=A2</FONT></A></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=3D3 cellPadding=3D0 width=3D"99%" =
border=3D0>
<TBODY>
<TR align=3Dmiddle>
<TD>
<FORM action=3Dsearch.asp><INPUT=20
style=3D"BORDER-RIGHT: #42a5f7 1px dotted; =
BORDER-TOP: #42a5f7 1px dotted; BORDER-LEFT: #42a5f7 1px dotted; =
BORDER-BOTTOM: #42a5f7 1px dotted"=20
size=3D12 name=3Dk> <INPUT type=3Dimage=20
=
src=3D"http://www.moon-soft.com/doc/images/d_search.gif"=20
align=3DabsMiddle value=3Dsubmit =
border=3D0><INPUT type=3Dhidden=20
value=3Dinfo =
name=3Dtype></FORM></TD></TR></TBODY></TABLE>
<SCRIPT=20
=
src=3D"http://www.moon-soft.com/download/ads/js_ads_left.js"=20
type=3Dtext/javascript></SCRIPT>
=
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
<TD vAlign=3Dtop width=3D8=20
background=3Dhttp://www.moon-soft.com/doc/images/bg_shadow.gif=20
bgColor=3D#ffffff></TD>
<TD vAlign=3Dtop width=3D595 height=3D2>
<TABLE style=3D"TABLE-LAYOUT: fixed; BORDER-COLLAPSE: collapse"=20
cellSpacing=3D0 cellPadding=3D0 width=3D"100%" border=3D0>
<TBODY>
<TR>
<TD class=3Darticle_title align=3Dmiddle =
height=3D30><B>=D2=BB=B8=F6=BA=C3=D3=C3=B5=C4=CF=DF=B3=CC=B3=D8</B></TD><=
/TR>
<TR>
<TD align=3Dmiddle width=3D"100%" bgColor=3D#888888 =
height=3D1></TD></TR>
<TR>
<TD width=3D"100%" height=3D2></TD></TR>
<TR>
<TD width=3D"100%" height=3D38>
<P align=3Dcenter><B>=D7=F7=D5=DF</B>=A3=BA=CE=B4=D6=AA =
<B>=C0=B4=D4=B4</B>=A3=BA=D4=C2=B9=E2=C8=ED=BC=FE=D5=BE<!--=CE=B4=D6=AA--=
>=20
=
<B>=BC=D3=C8=EB=CA=B1=BC=E4</B>=A3=BA2005-2-28=A1=A1=D4=C2=B9=E2=C8=ED=BC=
=FE=D5=BE</P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"100%">
<P>=C0=E0=B6=A8=D2=E5=C8=E7=CF=C2<BR><BR>// ThreadPoolImp.h: =
interface for the ThreadPoolImp=20
=
class.<BR>//<BR>/////////////////////////////////////////////////////////=
/////////////</P>
<P>#if=20
=
!defined(AFX_THREADPOOLIMP_H__82F4FC7E_2DB4_4D2A_ACC8_2EFC787CAE42__INCLU=
DED_)<BR>#define=20
=
AFX_THREADPOOLIMP_H__82F4FC7E_2DB4_4D2A_ACC8_2EFC787CAE42__INCLUDED_</P>
<P>#if _MSC_VER > 1000<BR>#pragma once<BR>#endif // =
_MSC_VER >=20
1000</P>
<P><BR>#pragma warning( disable : 4705 4786)</P>
<P>#include <map><BR>#include "AutoLock.h"</P>
<P>using namespace std;</P>
<P>class IJobDesc;<BR>class IWorker;</P>
<P>class CThreadPoolImp =
<BR>{<BR>public:<BR> class=20
=
ThreadInfo<BR> {<BR> public: <BR> ThreadI=
nfo()=20
{ m_hThread=3D0; m_bBusyWorking=3Dfalse;=20
}<BR> ThreadInfo(HANDLE handle, bool bBusy) {=20
m_hThread=3Dhandle; m_bBusyWorking=3DbBusy;=20
}<BR> ThreadInfo(const ThreadInfo& info) {=20
m_hThread=3Dinfo.m_hThread; =
m_bBusyWorking=3Dinfo.m_bBusyWorking;=20
}<BR> ////////<BR> HANDLE=20
=
m_hThread;<BR> bool m_bBusyWorking;<BR> };</P>
<P> typedef map<DWORD,ThreadInfo>=20
ThreadInfoMap;<BR> typedef =
ThreadInfoMap::iterator =20
Iterator_ThreadInfoMap;<BR> <BR> friend static =
unsigned=20
int CThreadPoolImp::ManagerProc(void* p); <BR> friend =
static=20
unsigned int CThreadPoolImp::WorkerProc(void*=20
p);<BR>protected:<BR> enum ThreadPoolStatus { BUSY, =
IDLE,=20
NORMAL };<BR>public:<BR> //interface to the=20
outside<BR> void Start(unsigned short nStatic, unsigned =
short=20
nmax);<BR> void Stop(bool bHash=3Dfalse);<BR> void =
ProcessJob(IJobDesc* pJob, IWorker* pWorker) const;</P>
<P> //constructor and=20
destructor<BR> CThreadPoolImp();<BR> virtual=20
~CThreadPoolImp();</P>
<P>protected:<BR> //interfaces public:<BR> HANDLE=20
GetMgrIoPort() const { return m_hMgrIoPort; }<BR> UINT=20
GetMgrWaitTime() const { return 1000; }<BR> HANDLE=20
GetWorkerIoPort() const { return m_hWorkerIoPort; }</P>
<P>private:<BR> static DWORD WINAPI ManagerProc(void*=20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -