Thread View: cn.bbs.comp.program
1 messages
1 total messages
Started by ���ܵ�Сʨ
Thu, 07 May 1998 00:00
Windows95�¶��̱߳�̼�������ʵ��
Author: ���ܵ�Сʨ
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
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads