Article View: cn.bbs.comp.program
Article #1074Windows95�¶��̱߳�̼�������ʵ��
From: ���ܵ�Сʨ
Date: Thu, 07 May 1998 00:00
Date: Thu, 07 May 1998 00:00
155 lines
13893 bytes
13893 bytes
��������
��������ڿ�������Internet���ϵĿ��ӵ绰���������������
һ������,���ڻ���It ernet���ϵĿ��ӵ绰ϵͳ��,ͬʱҪ��������
�ɼ������������롢ͼ��ɼ���ͼ������롢������ͼ�������Ĵ���
,������Щ����,��Ҫ���д��?�ر��������ź�,������ͼ����
��ʱ���,�����źŵò�������,ͨ�����м��;���ͼ���������
��ʱ���,���ܼ�ʱ�����������,ͨ��ͬ��Ҳ���жϡ������Ҫ
������ʵ��һ�ֲ��б��,��ֻ��һ��CPU�Ļ�����,Ҳ����Ҫ����CPU
ʱ�䰴ʱһ������������������¼�,���ڴ�����¼�,����
ijһ�¼��������32λWindows95��Windows NT��,���ǿ����ö�
�̵߳Ĵ��?����ʵ�����ֲ��д��?ʵ����,���ֲ��б���ںܶ�
�����¶��DZ���ġ�����,��File Manager�����ļ�ʱ,����ʾһ����
�����а���һ��Cancel��ť��������ļ����������,����Cancl��
ť,�ͻ���ֹ��������16λWinows��,ʵ���������Ҫ��File Copy
ѭ���ڲ������Եص���PeekMessage����������ڶ�һ���ܴ�Ķ�
��;�������̶��ļ�,��Ҫ���Ѻü����ʱ�䡣���ڻ�����Ӧ̫�ٶ�
,�û���Ƶ���ص��������ť,��Ϊϵͳ��֪������ֹ������������
��File Copyָ���������һ���߳�,�Ͳ���Ҫ�ڴ����з�һ���Peek
Message����,�����û�������߳̽�����ֿ�����,����Cancel��ť
��������õ���Ӧ��ͬ��ĵ���,��Ӧ�ó����д���һ�������߳���
�������д�ӡ����Ҳ�Ǻ����õ�,�û������ڴ�ӡ����ʱ����ʹ��Ӧ
��
�̵߳ĸ���
Ϊ���˽��̵߳ĸ��� ,���DZ���������һ�½�̵ĸ��һ����
��ͨ������Ϊ�����һ��ʵ����32λWindows��,���ռ��4GB����
���ַ�ռ䡣��������MS-DOS��16λWindows����ϵͳ�в�ͬ,32λWi
ndows�����û�л����ġ������˵,һ��32λWindows��̲���ִ��
ʲôָ��,��ֻ��ռ����4GB�ĵ�ַ�ռ�,�˿ռ�����Ӧ�ó���EXE�ļ�
�Ĵ������ݡ�
EXE��Ҫ��DLLҲ�����ǵĴ�������װ�뵽��̵ĵ�ַ�ռ䡣��
�˵�ַ�ռ�,��̻�ռ��ijЩ��Դ,�����ļ�����̬�ڴ������̡߳�
�������ֹʱ,�����������д����ĸ�����Դ�������
��������,�����û�л�����,��ֻ��һ����̬�ĸ��Ϊ���ý�
�����һЩ����,��̱�������ռ��һ�߳�,�����߳�����������ڵ�
ִ��,�����̸߳���ִ�а��ڽ�̵ĵ�ַ�ռ��еĴ��롣ʵ����,��
����̿��ܰ���߳�,���ǿ���ͬʱִ�н�̵ĵ�ַ�ռ��еĴ�
�롣Ϊ��������һ��,ÿ���߳����Լ���һ��CPU�Ĵ�������ÿ����
��������һ����ַ����ִ�����ַ�ռ��еĴ���,���û���߳�ִ��
��̵ؿռ��еĴ���,���û���߳�ִ�н�̵�ַ�ռ��еĴ���,���
Ҳ��û�м�����ڵ�����,ϵͳ���Զ�����̼����ַ�ռ䡣Ϊ��
����������Щ�߳�,����ϵͳΪÿ�������̰߳���һЩCPUʱ��,����
ϵͳ����ת��ʽ���߳��ṩʱ��Ƭ,�����һ�ּ���,������Щ�߳�
����ͬʱ���С�����һ��32λWindows���ʱ,��ĵ�һ���̳߳�Ϊ��
�߳�,��ϵͳ�Զ����,Ȼ�����������߳���ɶ�����߳�,��Щ��
���ֿ���ɸ����̡߳�
�̵߳ı�̼���
1.��д�̺߳���
�����̱߳����һ��ָ���ĺ���ʼִ��,�ú����Ϊ�̺߳���,
������������ԭ��D WORD WINAPI YourThreadFunc(LPVOID lpvT.h
readParm);
�ú�������һ��LPVOID�͵IJ���,������һ��DWORD�͵�����,Ҳ
������һ��ָ��һ���������ָ��,����һ��DWORD�͵�ֵ����WinMai
n����һ��,��������ɲ���ϵͳ����,����ϵͳ���ð���KERNE
L32.DLL�еķ�C����ʱ��һ���ڲ�����,��StartOfThread,Ȼ����t a
rtOfThread��������һ���쳣�����ܺ�,�������ǵĺ���
2.����һ���߳�
һ����̵����߳����ɲ���ϵͳ�Զ����,���Ҫ��һ�����߳�
����������߳�,���Ե���CreateThread����ɡ���ʽ����:
HANDLE CreateThread(LPSECURITY_ATTRIBUTES jpsa.DWORD cbs
tack,LPTHREAD_STAR_ ROUTINE lpStartAddr.LPVOID lpvThreadParm
,DWORD fdwCreate,LPDWORD lpIDThread);
�������������:
lpsa:��һ��ָ��SECURITY_ATTRIBUTES�ṹ��ָ�롣������ö�
��Ϊȱʡ��ȫ���ԵĻ�,���Դ�һ��NULL;���������һ���ӽ�̶���
�̳и��̶߳�����,����ָ��һ��SECURIT_ ATTRIBUTES�ṹ,����b
InheritHandle��Ա��ʼ��ΪTURE��
cbstark:��ʾ�߳�Ϊ�Լ����ö�ջ����ĵ�ַ�ռ��С,0��ʾ��
��ϵͳȱʡֵ��
lpStartAddr:��ʾ���߳̿�ʼִ��ʱ�������ں���ĵ�ַ,��Ϊ
�̺߳���
lpvThreadParm:�Ǵ����̺߳���IJ���
fdwCreate:ָ�������̴߳����ĸ��ӱ�־,����ȡ����ֵ�����
�ò���Ϊ0,�߳̾ͻ�������ʼִ��;���ò���ΪCREATE_SUSPENDED,
��ϵͳ�����̺߳�,��ʼ��CPU,�Ǽ�CONTEXT�ṹ�ij�Ա,����ִ��
���̺߳����еĵ�һ��ָ��,����������ִ��,���ǹ�����̡߳�
lpIDThrdad:��һ��DWORD���͵�ַ,���ظ�������̵߳�IDֵ��
3.��ֹ�߳�
���ij�̵߳�����ExitThread����,�Ϳ�����ֹ�Լ�,��:
VOID ExtThead(UNIT fuExitCode);
�������Ϊ���øú�����߳��������˳���fuExitCode��,����
ֹ���̡߳�
����TerminateThread���������ֹ�̡߳���:
BOOL TerminateThread(HANDLE hThread,DWORD dwExitCode);
�ú�������������hThread����ָ�����߳�,����dwExitCode���
���̵߳��˳��롣
��ij���̲߳�����Ӧʱ,���ǿ����������̵߳��øú������տ�
�������Ӧ���̡߳�
4.�趨�̵߳�������ȼ�
��һ���̱߳��״δ���ʱ,������ȼ���ͬ����������̵�����
�����ڵ�������ڿ���ͨ�����SetThreadPrionrity����ı��̵߳�
������ȼ���һ���̵߳����ȼ���������������Ľ�����ȼ����Ե�
��
BOOL SetThreadPriority(HANDLE hThread,intnPriority);
���в���hThread��ָ��������ȼ��̵߳ľ��,nPriority��
�������µ�ֵ:
THREAD_PRIORITY_LOWEST
THREAD_PRIORITY_BELOW_NORMAL
THREAD_PRIORITY_NORMAL
THREAD_PRIONRITY_ABOVE_NORMAL
THREAD_PRIONITY_HIGHEST��
5.���ָ��߳�
ǰ���ᵽ����Դ�������״̬���߳�,����ͨ���(CREATE_SUS
PENDED��־����Cra ted��ʵ�֡����������ʱ,ϵͳ����ָ���߳�
�ĺ��Ķ���,�����̵߳�ջ,��CONTEXT�ṹ�г�ʼ���߳�CPUע���Ա
��Ȼ��,�̶߳�������һ����ʼ�������ֵ1,�����ϵͳ������
����CPUȥִ���̡߳�Ҫ��ʼִ��һ���߳�,��һ���̱߳������Resu
meThread�����ݸ������CreateThreadʱ���ص��߳̾���ʽ����
:
DWORD ResumeThread(HANDLE hThread);
һ���߳̿��Ա������Ρ����һ���̱߳�����3��,����߳���
�����CPU֮ǰ���뱻�ָ�3�Ρ������ڴ����߳�ʱʹ��CREATE_SUS
PENDED��־,��������SuspendThread��������̡߳���ʽ����:
DWORD SuspendThread(HANDLE hThread)��
���̱߳�̼�����Ӧ��
��ǰ����,Ϊ��ʵ�ֻ���TCP/IP�µĿ��ӵ绰,�ͱ���"����"��ִ
�������ɼ�����������롢ͼ��ɼ���ͼ�����Լ�������ݵĽ���
�뷢�͡�������ͼ��IJɼ���Ӳ���ɼ�������,���dz���ֻ���ʼ��
��Ӳ���ɼ���,Ȼ��ʵʱ��ȡ�ɼ���ݼ���,��������ͼ����ݵı��
���Լ�������ݵĴ��䶼�����ɳ���ȥЭ��ִ��,��CPU����Ϊ������
������,��������ijһ���¼��ϴ����Windows 95�µ��߳�����
��������Ҫ��ı�̼�����
���ĸ��������Windows 95�������ö��̱߳�̼���ʵ�ֵĻ���
TCP/IP�Ŀ��ӵ绰�IJ���Դ��,���а��������ڹ�̺����Լ����ж�
�뱻�ж˵�TCP/IP�����̺߳���������������̺߳�������ͼ��
������ʵʱ�Ա����������봫��ģ���ʵʱ�Ե�Ҫ��Ҫ��Щ,����
�����������Ϊ�¼�ȥ��ͼ�����,Ȼ�����ͼ������,��û��Ϊͼ
������ȥ����ʵ��һ���̡߳�
�������ڳ�ʼ��ʱ,��CREATE_SUSPENDED��־�����������߳�hTh
readG7231��hThreadC PRev��һ���������������,����̺߳���ΪG
723Proc,���̲߳��ϲ�ѯ�������ޱ�����������ͼ�������,����,
�����H.223���,Ȼ��ͨ��TCP�Ķ˿ڷ���Է�������һ���߳���
��TCP/IP�Ľ���,����̺߳���ΪAcceptThreadProcRiv,���̲߳���
���TCP/IP�˿����Է�����������,����,�ͽ�������,����H.223��
���������Ӧ�Ļ�����û����������������������߳�G723Proc
��ѯ,��������Ӧ�Ľ�����,����ʹ���˶��̵߳ı�̼���,ʹ�ò���
ϵͳ��ʱȥ�������������ģ��ʹ���ģ��,�Ӷ�֤��ͨ�ŵIJ���
�ϡ�
����ע:Դ�����ڱ�����WWWվ����,��ַ��:http://www.com
puterworld.co.cn/si ll./skill.html,��ӭ�����߷��ʡ�
--
________ _____ _____ ______________ _____
___ __ \___(_)________ ___(_) __ ___/___ /_ ___(_)
__ /_/ /__ / ___ __ \__ / _____ \ __ __ \__ /
_ ____/ _ / __ /_/ /_ / ____/ / _ / / /_ /
/_/ /_/ _ .___/ /_/ /____/ /_/ /_/ /_/
/_/
[m[1;36m�� ��Դ:���ϴ�С�ٺ���Ϣ����վ bbs.nju.edu.cn��[FROM: hsia.nju.edu.cn][m
Technical Details
Message-ID:
<3OOYJA$tnA@bbs.nju.edu.cn>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB X-Google-Thread: fc86e,9077b48c6b5a774d,start X-Google-Attributes: gidfc86e,public From: pipishi.bbs@bbs.nju.edu.cn (���ܵ�Сʨ) Subject: Windows95�¶��̱߳�̼�������ʵ�� Date: 1998/05/07 Message-ID: <3OOYJA$tnA@bbs.nju.edu.cn> X-Deja-AN: 351554924 X-Filename: Programming/M.894547354.A Organization: nju_bbs Newsgroups: cn.bbs.comp.program