#include <iostream.h>
#include "stdio.h"
DWORD WINAPI funcProc(LPVOID lpParameter); // thread data
DWORD WINAPI funcProc2(LPVOID lpParameter); // thread data
int index = 10;
void main()
{
HANDLE hThred1,hThred2;
hThred1 = CreateThread(NULL,0,funcProc,NULL,0,NULL);
hThred2 = CreateThread(NULL,0,funcProc2,(LPVOID)&index,0,NULL);//传个参数进去
Sleep(100);
CloseHandle(hThred1);
CloseHandle(hThred2);
}
DWORD WINAPI funcProc(LPVOID lpParameter) // thread data
{
for(int i = 0;i<10;i++)
{
cout<<"----- "<<endl;
}
return 0;
}
DWORD WINAPI funcProc2(LPVOID lpParameter)
{
int *a = (int *)lpParameter;
for(int i = 0;i<10;i++)
{
cout<<"a = "<<*a<<endl;
}
return 0;
}
以上是在win32下可以执行的代码
Linux 下的话:
#include<stdio.h>
#include<pthread.h>
void Senny(void)
{
int i;
for(i=0;i<10;i++)
printf("This is Senny:%d\n",i);
}
int main()
{
pthread_t thread_id;
int k,ret;
ret=pthread_create(&thread_id,NULL,(void*)Senny,NULL);
if(ret!=0)
{
printf("Create thread fail!");
exit(1);
}
for(k=0;k<10;k++)
{
printf("This is main process!\n");
}
pthread_join(thread_id,NULL);
return 0;
}
下面是线程参数的简单描述
HANDLE hThread = CreateThread(
NULL, // 没有安全描述符
0, // 默认线程栈的大小
MyThreadProc, // 线程函数指针
(LPVOID)&n, // 传递参数
NULL, // 没有附加属性
NULL // 不需要获得线程号码
);
CloseHandle(hThread); // 如果不需要再监视线程,则关闭线程句柄