linux下的线程编程涉及到了pthread_create,但是在平常周末家中练习使用,不想打开虚拟机,也不太想使用boost库带的多线程。这个时候就得在vc2012下使用pthread的了。。
搭建的步骤如下:
(1)下载pthreads-w32-2-9-1-release.zip文件
(2)项目属性=》=》vc++目录=》包含目录=》;添加 pthreads-w32-2-9-1-release\Pre-built.2\include
(3)项目属性=》=》vc++目录=》库目录=》;添加 pthreads-w32-2-9-1-release\Pre-built.2\lib\x64
(4)项目属性=》=》链接器=》输入=》附加依赖项=》;添加pthreadVC2.lib
(5)然后网上找了些多线程的代码,编译之后,先时报 "timespec”;”struct”类型重定义:
解决方法如下:
在pthread.h在第35行加入如下代码:#define HAVE_STRUCT_TIMESPEC
(6)编译通过之后,程序运行报错,说找不到pthreadVC2.dll 。
解决方法如下:
将pthreadVC2.dll拷贝到项目的Debug目录下
(7)最后运行的结果如下:
找到网上程序的代码如下:
void* tprocess1(void* args) { int i=1; while(i<=10) { printf("process1:%d\n",i); i++; } return NULL; } void* tprocess2(void* args) { int i=1; while(i<=10) { printf("process2:%d\n",i); i++; } return NULL; } int main() { pthread_t t1; pthread_t t2; pthread_create(&t1,NULL,tprocess1,NULL); pthread_create(&t2,NULL,tprocess2,NULL); pthread_join(t1,NULL); pthread_join(t2,NULL); return 0; }