您的位置:首页 > 运维架构 > Linux

windows和linux下线程的定义方法

2012-02-07 10:07 260 查看
#include <windows.h>

#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); // 如果不需要再监视线程,则关闭线程句柄
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: