• Visual studio2019 配置使用pthread


    一、下载pthread

    pthread的下网址
    下载pthread的最新版pthreads-w32-2-9-1-release.zip,然后解压,会得到如下三个文件夹:
    在这里插入图片描述

    二、配置pthread

    1、右键项目,选择属性
    在这里插入图片描述
    2、在VC++目录配置包含目录库目录
    包含目录:配置的是include所在的路径(D:\Android\c++\pthreads-w32-2-9-1-release\Pre-built.2\include)
    库目录:配置的是lib所在的路径,如果是配置的是32位的平台,就选择D:\Android\c++\pthreads-w32-2-9-1-release\Pre-built.2\lib\x86;如果配置64位的平台,就选择D:\Android\c++\pthreads-w32-2-9-1-release\Pre-built.2\lib\x64
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    3、编写如下代码,并运行

    #include 
    // 必须的头文件
    #include 
    
    using namespace std;
    
    #define NUM_THREADS 5
    
    // 线程的运行函数
    void* say_hello(void* args)
    {
        cout << "Hello Runoob!" << endl;
        return 0;
    }
    
    int main()
    {
        // 定义线程的 id 变量,多个变量使用数组
        pthread_t tids[NUM_THREADS];
        for (int i = 0; i < NUM_THREADS; ++i)
        {
            //参数依次是:创建的线程id,线程参数,调用的函数,传入的函数参数
            int ret = pthread_create(&tids[i], NULL, say_hello, NULL);
            if (ret != 0)
            {
                cout << "pthread_create error: error_code=" << ret << endl;
            }
        }
        //等各个线程退出后,进程才结束,否则进程强制结束了,线程可能还没反应过来;
        pthread_exit(NULL);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    3-1、运行会报出以下错误:
    在这里插入图片描述
    解决方案:
    打开pthread.h文件,添加以下内容:

    #define HAVE_STRUCT_TIMESPEC
    #pragma comment(lib,"pthreadVC2.lib")
    
    • 1
    • 2

    在这里插入图片描述
    3-2、再次运行,会报出以下异常:
    在这里插入图片描述
    解决方案:原因是找不到对应的dll文件,需要手动把对应的dll文件拷贝到对应的目录下
    Pre-built.2\dll\x86下的文件拷贝到C:\Windows\SysWOW64目录下
    在这里插入图片描述

    Pre-built.2\dll\x64下的文件拷贝到C:\Windows\System32目录下
    在这里插入图片描述

    PS:直接拷贝对应的dll文件到对应的目录下,而不是dll文件夹的文件夹
    再次运行,就成功了。
    在这里插入图片描述

  • 相关阅读:
    力扣(LeetCode)301. 删除无效的括号(2022.10.29)
    嵌入式硬件常见英文总结
    看完这套 Java 笔记,才明白笔者同时斩获 7 份大厂 offer 是有原因的
    软件测试全套教程,软件测试自学线路图
    5.1 主机扫描:路由信息的收集
    Java零基础入门看着一篇就够了
    Opencv_4_图像像素的读写操作
    C++面试经典题目汇总
    muduo网络库编程
    [附源码]Python计算机毕业设计SSM酒店住房管理系统(程序+LW)
  • 原文地址:https://blog.csdn.net/u011557841/article/details/126225067