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;
    }
posted @ 2022-06-25 18:16  田大叔  阅读(143)  评论(0编辑  收藏  举报