C/C++教程

VC2012下使用pthread_create进行多线程编程

本文主要是介绍VC2012下使用pthread_create进行多线程编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  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;     }
这篇关于VC2012下使用pthread_create进行多线程编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!