首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑客编程课程(五)多线程编程介绍

2012-09-14 
黑客编程教程(五)多线程编程介绍第五节 多线程编程介绍对于多线程的基本概念,我不在赘述,是个只要学习过一

黑客编程教程(五)多线程编程介绍

                                              第五节 多线程编程介绍    对于多线程的基本概念,我不在赘述,是个只要学习过一门编程语言就应该多进程和线程有个基本的了解.这里重点介绍一下如何实现多线程.通常一个程序的主线程有操作系统创建,如果想让其创建额外的线程,可以调用CreateThread()函数来完成.函数原形如下:HANDLE CreateThread(){LPSECURITY_ATTRIBUTES LPThreadAttributes,  //指向SECURITY_ATTRIBUTES的指针SIZE_T dwStackSize,                        //表示线程为自己所用堆栈分配的地址空间的大小 系统缺省值为0LPTHREAD_START-TOUTINE lpStartAddress,     //表示新线程开始执行时代码所在函数的地址 即线程函数名LPVOID lpParameter,                        //是传入线程函数的参数DWORD dwCreationFlags,                     //指定控制线程创建的附加标志 取0线程立即执行 取CREATE_SUSPENDED线程挂起LPDWORD lpThreadld                         //是个DWORD类型的地址,返回赋给该新线程的ID}线程函数lpParameter必须有以下原形:DWORD WINAPI XXXThreadFun(LPVOID lpParameter){return(0);}________________________________________________________________________________________________下面我们来创建一个线程:#include <windows.h>#include <stdio.h>DWORD WINAPI ThreadFunc( LPVOID lpParam )                         //线程函数,跟普通的函数没什么两样{     printf( "Parameter = %d.", *(DWORD*)lpParam ); return 0; }  VOID main( VOID ) {     DWORD dwThreadId, dwThrdParam = 1;     HANDLE hThread;  hThread = CreateThread( NULL,0,ThreadFunc,&dwThrdParam, 0,&dwThreadId);       if (hThread == NULL)    {      printf( "CreateThread failed (%d)\n", GetLastError() );    }   else    {      _getch();      CloseHandle( hThread );   }}关于线程同步的问题,这里就不再讲解,请大家自己查阅资料,不查阅以后可能会有困难啊.培养一下各位的自己动手能力.

热点排行