Pthread是由POSIX提出的一套通用的线程库,在linux平台下,它被广泛的支持,而windows平台下,却并不被支持,而pthreads-w32为我们提供了解决方案,本文我们准备在我们的windows平台下进行pthread-w32的安装,在网络上有类似的文章,但是讲的都是比较老的平台,在windows8下支持并不全面,不过可以作为参考。我们在这里贴出几个网址,供参考使用。

Windows 7 64bit和Visual Studio 2010下安装及使用Pthread-w32 2.8

windows下使用pthread库(转)

如果你的是XP系统或者win7 32位系统,那么,那两篇文章已经足以你完成pthread-w32的安装了。现在,我们开始讲我们的尝试过程。

一、安装平台

windows8 64位系统,Microsoft Visual Studio 2012

二、pthreads-w32 下载地址

我们这里下载最新版本pthreads-w32-2-9-1

ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip

下载后解压,可以看到共有三个文件夹

我们用到的主要是“Pre-built.2”这个文件夹下的三个文件夹,分别是动态链接库、头文件、静态链接库

三、配置头文件及静态链接库

这里有多种方式,我们这里只提到我们用到的一种,总之目的是让我们建立的工程能够找到对应的头文件、静态库文件,以及运行时程序能够找到动态链接库文件。

这里,我们直接把头文件拷贝到Visual Studio的默认路径的头文件中,即把include文件夹中的三个文件直接拷贝到Visual Studio安装目录下VC->include文件夹下,例如我将include中文件拷贝到的位置是

E:\Program Files\Microsoft Visual Studio 11.0\VC\include

这样,我们就不必每次在项目用到时都配置一遍,特别是在Visual Studio2012 貌似不支持全局的头文件配置时(不确定,如果谁找到了可以告诉我一声),这种方式对于经常会建一些小项目的人来说,相对节省时间。

同样的办法与原因,我们也可以把lib文件夹下的内容拷贝到Visual Studio安装目录下默认的lib寻找路径中,即VC->lib中,例如我将lib文件夹下的x64与x86两个文件直接拷贝到

E:\Program Files\Microsoft Visual Studio 11.0\VC\lib

的下面。

四、配置动态链接库

和头文件和静态链接库的配置方式相似,我们这里将dll文件夹的内容放到我们程序能够找到的位置,我们的方案是

把dll下的x64文件夹下的两个文件,即pthreadGC2.dll与pthreadVC2.dll拷贝到C:\Windows\System32下(用于64位程序的运行)

把dll下的x86文件夹下的五个文件,拷贝到C:\Windows\SysWOW64下(用于32位程序的运行),注意一下,千万不能将这些文件拷贝反位置,否则,程序运行时会提示说找不到对应的dll文件。这些在网上的很多文章中都被忽略掉了,所以我们特别提出。

五、运行测试

完成以上配置之后,我们运行一下测试程序,证明我们的配置完成了

  1. //main.cpp
  2. #include <stdio.h>
  3. #include <pthread.h>
  4. #include <assert.h>
  5. #pragma comment(lib,"x86/pthreadVC2.lib")
  6. void* Function_t(void* Param)
  7. {
  8. printf("我是线程! ");
  9. pthread_t myid = pthread_self();
  10. printf("线程ID=%d ", myid);
  11. return NULL;
  12. }
  13. int main()
  14. {
  15. pthread_t pid;
  16. pthread_attr_t attr;
  17. pthread_attr_init(&attr);
  18. pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS);
  19. pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
  20. pthread_create(&pid, &attr, Function_t, NULL);
  21. printf("======================================== ");
  22. getchar();
  23. pthread_attr_destroy(&attr);
  24. return 0;
  25. }

这里,我们需要注意的是我们的第6行代码,我们需要在代码中包含入静态链接库(注意,根据不同的编译选项,选择x86还是x64,如果不相配,将无法链接完成)

#pragma comment(lib,"x86/pthreadVC2.lib")

在windows下配置pthread多线程相关推荐

  1. windows下使用pthread库

    最近在看<C++多核高级编程>这本书,收集了些有用的东西,方便在windows下使用POSIX标准进行Pthread开发,有利于跨平台. ------------------------- ...

  2. Windows下配置PHP环境

    Windows下配置PHP环境 首先要下载如下软件,推荐到官网下载 最流行的HTTP服务器软件之一.快速.可靠.可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,完全免费,完全源 ...

  3. php sendmail方法,PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法

    本文实例讲述了PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法.分享给大家供大家参考,具体如下: 1.php mail()函数在windows不能用,需要安装sen ...

  4. windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error...

    windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error 学习了:https ...

  5. windows 下配置 react native 开发环境

    windows 下配置 react native 开发环境 安装nvm 由于react native 需要使用 NodeJs 4.0以上版本,为了方便切换NodeJs,首先我们需要安装nvm. 你可以 ...

  6. Windows下配置Chrome WebDriver

    其实就是下载一个exe,放在chrome下面,添加到环境变量 Windows下配置Chrome WebDriver 下载地址,选版本: http://npm.taobao.org/mirrors/ch ...

  7. windows下配置ssh(FreeSSHD + putty)

    windows下配置ssh(FreeSSHD + putty): 1.关于配置过程找到一篇很好的博客,推荐大家先好好看一下,这篇博文解决了大方向问题. 地址:http://blog.csdn.net/ ...

  8. Windows下配置单机Hadoop环境

    Windows下配置单机Hadoop环境 文章目录 Windows下配置单机Hadoop环境 下载Hadoop 下载配置文件 配置环境变量 初始化HDFS 启动Hadoop 关闭Hadoop 常见错误 ...

  9. Windows下配置IDEA开发环境

    Windows下配置IDEA开发环境 文章目录 Windows下配置IDEA开发环境 安装JDK 查看JDK是否安装 下载JDK 配置环境变量 安装IDEA 下载IDEA 安装IDEA 初始化IDEA ...

最新文章

  1. 给新手或者中级程序员提的22条重要建议.
  2. spring日志报错提醒_Spring Boot 2.x : 整合日志框架 Log4j2
  3. zoj 3696 Alien's Organ(泊松分布)
  4. Python GUI界面编程初步 01 - GUI库的特点和选择
  5. 平纹、斜纹、缎纹是什么?各自有何特点?
  6. Python取出SQL表单中的字段名
  7. 硬盘数据丢失原因?硬盘数据恢复方法
  8. 功能强大的pdf控件,用户无需安装任何软件即可使用
  9. 计算机txt公式,完整word版本积分公式
  10. cad画多段线时不显示轨迹_CAD画的线段显示不出来的解决方法
  11. 关于流行的几点思考——《引爆点》读书笔记
  12. 自动驾驶汽车技术介绍【硬件+软件】
  13. js逆向-1 模拟登陆微信公众号平台
  14. 如何获取QQ邮箱授权码?
  15. ~~积累帖~~学科专业术语 英文缩写总结(一)——通信 信息论(持续更新)
  16. LSTM做预测遇到的错误总结
  17. linux6.5取消屏保,怎么把wps屏保关掉
  18. cvx怎么处理向量和向量共轭转置的乘积_矩阵论练习2(共轭转置的秩和解空间)...
  19. kvm创建uefi虚拟机
  20. Linux——Bash脚本基本用法总结

热门文章

  1. AngularJS和DataModel
  2. 博客非100%原创,在学习道路上,我一直站在别人肩上
  3. 测试心得:微图书销售小程序
  4. 图论之tarjan缩点
  5. Go 学习笔记(11)— 切片定义、切片初始化、数组和切片差异、字符串和切片转换、len()、cap()、空 nil 切片、append()、copy() 函数、删除切片元素
  6. 深入jQuery中的data()
  7. C语言的变量的内存分配
  8. php imagecopy 用法,php使用imagecopymerge()函数创建半透明水印
  9. java的不足_Java不足之我见
  10. shell访问php文件夹,Shell获取某目录下所有文件夹的名称