windows 创建子线程

来源:互联网 发布:ios8蜂窝数据快捷键 编辑:程序博客网 时间:2024/05/22 06:28

微软在Windows API中提供了建立新的线程的函数CreateThread,函数的原型定义如下:

HANDLE CreateThread(  LPSECURITY_ATTRIBUTES lpThreadAttributes,//线程安全属性  DWORD dwStackSize,//堆栈大小  LPTHREAD_START_ROUTINE lpStartAddress,//函数地址  LPVOID lpParameter,//函数参数  DWORD dwCreationFlags,//创建标识  LPDWORD lpThreadId//新线程的ID);

下面写一个示例程序来看看怎么创建和控制一个新线程。

#include<iostream>#include<Windows.h>using namespace std;//线程一,内部关闭自己DWORD WINAPI ThreadOne(LPVOID lpParameter){int i = 0;for(i = 0;i < 10; i ++){cout << "thread one is running " << (char *)lpParameter << endl;if(i == 5){//关闭线程自己ExitThread(300);}}return 0;}DWORD WINAPI ThreadTwo(LPVOID lpParameter){int i = 0;for(i = 0;i < 100; i ++){cout << "thread two is running " << (char *)lpParameter << endl;Sleep(100);}return 0;}int main(){HANDLE thread1,thread2;thread1 = CreateThread(NULL,0,ThreadOne,"testone",0,NULL);thread2 = CreateThread(NULL,0,ThreadTwo,"testtwo",0,NULL);int i = 0;for(i = 0;i < 10; i ++){cout << "main thread is running " << endl;Sleep(100);}//主线程关闭子线程TerminateThread(thread2,300);Sleep(3000);return 0;}
其中线程一是自行关闭,线程二是主线程强行关闭,代码还是比较清晰易懂的,右边这个链接有多线程编程的一些函数介绍:http://blog.csdn.net/bxhj3014/article/details/2082259

原创粉丝点击