加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

vs2010 使用pthread进行多线程编程

(2018-01-10 16:58:47)
分类: linux线程学习

转载出处:http://blog.csdn.net/zheng_ren_feng/article/details/33737143


1、从http://sourceware.org/pthreads-win32/下载pthread windows安装包,我下的是pthread-w32-2-9-1-release.zip,其他版本也可以。解压到pthread-w32-2-9-1-release

2、打开vs2010,项目->属性->配置属性->VC++目录,包含目录里添加inlude路径,如下图所示,如果刚下载的压缩包放在D盘,则在包含目录那一栏添加:D:\pthread-w32-2-9-1-release\Pre-built.2\include;在库目录那一栏添加:D:\pthrea-w32-2-9-1-release\Pre-built2\lib

 http://img.blog.csdn.net/20140623155031796使用pthread进行多线程编程" />

3、在链接器—>输入,附加依赖项一栏添加

pthreadVC2.lib;pthreadVCE2.lib;pthreadVSE2.lib;如下图所示。所有设置完成后点确定。

 http://img.blog.csdn.net/20140623155041468使用pthread进行多线程编程" />

4、打开pthread-w32-2-9-1-release\Pre-built.2\lib\X86,将里面三个*.lib文件复制到你所建立的工程目录中去,这样就设置好了,大功告成。

如下一个简单的程序实例。

 

[cpp] view plain copy
  1. #include  
  2. #include  
  3. #include  
  4. #define NUM_THREADS 4  
  5. typedef struct 
  6. int threadId;  
  7. }threadParm_t;  
  8. void *threadFunc(void *parm)  
  9.  
  10. threadParm_t *p=(threadParm_t *)parm;  
  11. fprintf(stdout,"Hello world from thread%d\n",p->threadId);  
  12. pthread_exit((void *)&(p->threadId));  
  13. return 0;  
  14.  
  15. int main(int argc,char *argv[])  
  16.  
  17. int i;  
  18. int *res;  
  19. res=(int *)malloc(sizeof(int));  
  20. pthread_t thread[NUM_THREADS];  
  21. threadParm_t threadParm[NUM_THREADS];  
  22. for(i=0;i
  23.  
  24. threadParm[i].threadId=i;  
  25. pthread_create(&thread[i],NULL,threadFunc,(void *)&threadParm[i]);  
  26.  
  27. for(i=0;i
  28.  
  29. pthread_join(thread[i],(void **)&res);  
  30. fprintf(stdout,"Thread %d has exited.\n",*res);  
  31.  
  32. system("pause");  
  33. return 0;  
  34.  


运行程序得到如下结果。

 http://img.blog.csdn.net/20140623155047625使用pthread进行多线程编程" />


如果运行时,提示缺少“pthreadVC2.dll”,将pthread目录下的pthreadVC2.dll文件拷贝到C:\Windows\System32(32位系统)中即可

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有