Windows+VS2008 下使用pthread

使用pthread的好处在于对于跨平台的程序,无需重写线程部分。目前跨平台的线程库还有,Boost.Thread, Intel TBB里的线程类(与Boost.Thread接口几乎相同),ACE里的活动对象类,ICE里的线程类。

PMVS源码在多线程使用pthread,这个库一般用于linux下,要在win7 64bit下使用也挺简单:

 

1. 下载pthreads-w32-2-8-0-release.exe

下载地址:ftp://sourceware.org/pub/pthreads-win32

 

2. 安装pthreads-w32-2-8-0-release.exe

双击pthreads-w32-2-8-0-release.exe,点击Browse选择安装到的目录,然后点击Extract解压,完成后点击Done。

之后会在安装目录看到有三个文件夹Pre-built.2、pthreads.2、QueueUserAPCEx. 第一个是生成库(头文件和库文件那些),第二个是源码,第三个不清楚,像是测试程序。

将Pre-built.2文件夹下的include和lib文件夹里的文件复制到VS2008对应的include和lib目录,例如C:\Program Files(X86)\Microsoft Visual Studio 9.0\VC\include和C:\Program Files(X86)\Microsoft VisualStudio 9.0\VC\lib.

 

3. 编写测试程序

#include<stdio.h>
#include<pthread.h>
#include<Windows.h>
#pragma comment(lib, "pthreadVC2.lib")  //必须加上这句

void*Function_t(void* Param)
{
    pthread_t myid = pthread_self();
    while(1)
    {
        printf("线程ID=%d \n", myid);
        Sleep(4000);
    }
    return NULL;
}

int main()
{
    pthread_t pid;
    pthread_create(&pid, NULL, Function_t,NULL);
    while (1)
    {
        printf("in fatherprocess!\n");
        Sleep(2000);
    }
    getchar();
    return 1;
}

运行过程中出现缺少“pthreadVC2.dll”,这时候需要将.lib中对应的文件拷贝到windows的系统文件夹下,对于64bit,拷贝位置为“C:\Windows\SysWOW64”

或者:如果运行提示缺少pthreadVC2.dll,就将Pre-built.2\lib目录下的pthreadVC2.dll拷贝到可执行文件所在目录。


参考来源:

http://www.cnblogs.com/summerRQ/articles/2423631.html

http://blog.csdn.net/michaelsrc/article/details/6665493

http://www.cppblog.com/liquidx/archive/2009/06/16/87811.aspx

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:4 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐