转载:http://www.cnblogs.com/codingmengmeng/p/5913068.html
c++中创建线程的api函数
HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,//SD:线程安全相关的属性,常置为NULL SIZE_T dwStackSize,//initialstacksize:新线程的初始化栈的大小,可设置为0 LPTHREAD_START_ROUTINE lpStartAddress,//threadfunction:被线程执行的回调函数,也称为线程函数 LPVOID lpParameter,//threadargument:传入线程函数的参数,不需传递参数时为NULL DWORD dwCreationFlags,//creationoption:控制线程创建的标志 LPDWORD lpThreadId//threadidentifier:传出参数,用于获得线程ID,如果为NULL则不返回线程ID )
实例:
#include <iostream>
#include <windows.h>
using namespace std;
DWORD WINAPI Fun(LPVOID lpParamter)
{
for (int i = 0; i < 100; i++)
cout << "A Thread Fun Display!\n";
return 0L;
}
int main()
{
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
CloseHandle(hThread);
for (int i = 0; i < 100; i++)
cout << "Main Thread Display!\n";
return 0;
}
这里的输出不用endl结束,因为endl结束的时候会把这个系统分配给这个线程的时间片也结束掉,所以有时候来不及换行,就会出现一行有两个输出