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); // 如果不需要再监视线程,则关闭线程句柄
#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); // 如果不需要再监视线程,则关闭线程句柄
相关文章推荐
- 进程间通信与线程间通信 . windows下多线程通信方法 Linux 多线程通信
- 一种在windows和linux间传文件的方法
- 删除SVN三种方法delSvn(windows+linux)
- Windows下正确使用adminconsole连接Linux的方法
- windows用SSH和linux同步文件&linux开启SSH&ssh client 报 algorithm negotiation failed的解决方法之一
- 基于linux与windows平台下 如何下载android sdk源代码的方法详解
- 将 Windows IPC 应用程序移植到 Linux,第 1 部分: 进程和线程
- 线程本地存储(Windows和Linux) http://blog.csdn.net/wzhwho/article/details/6427596
- Oracle在Windows和Linux上的备份方法
- Linux和Windows下查看环境变量方法(转)
- Windows和Linux系统的Debug调试信息输出方法
- vmware 虚拟机ubuntu 装了vmware-tools后无法从linux向windows拷文件解决方法
- linux/unix/windows环境查看本机的外网内网地址方法
- linux虚拟机访问本机Windows共享文件设置方法
- Windows、Linux下文件操作(写、删除)错误的产生原因、及解决方法
- [zz] cupcake编译linuxsdk在windows上运行的方法
- windows和linux下,查看oracle SID的方法
- Linux Windows 双系统下删除 Linux系统的方法
- Linux下获取线程TID的方法——gettid()