CmakeList.txt之Linux-pthread

1.cmakelist.txt

复制代码
cmake_minimum_required(VERSION 3.16)
​
project(pthread_linux_test LANGUAGES C)
​
# 查找Threads库(包含pthread支持)
find_package(Threads REQUIRED)
if (Threads_FOUND)
    message(STATUS "成功找到Threads库")
endif()
​
add_executable(pthread_linux_test main.c
    threadpool.c threadpool.h
)
# 链接Threads库到可执行文件
target_link_libraries(pthread_linux_test Threads::Threads)
include(GNUInstallDirs)
install(TARGETS pthread_linux_test
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
复制代码

2.测试代码

复制代码
#include <stdio.h>
#include "threadpool.h"
void taskfunc(void* arg) {
    int num = *(int*)arg;
    printf("thread %ld is working, number=%d\n", pthread_self(), num);
    sleep(1);
}
​
int main()
{
    //创建线程池
    ThreadPool* pool = threadPoolCreate(3, 10, 100);
    for (int i = 0; i < 100; i++) {
        int* num = (int*)malloc(sizeof(int));
        *num = i + 100;
        threadPoolAdd(pool, taskfunc, num);
    }
    sleep(30);
    threadPoolDestroy(pool);
​
    printf("Hello World!\n");
    return 0;
}
复制代码

3.结果

相关推荐
科研前沿1 分钟前
SpaceOS™空间计算底座与五大自研引擎,实现多项关键技术突破
大数据·运维·人工智能·算法·重构
Qt程序员35 分钟前
【无标题】
linux·c++·消息队列·共享内存·c/c++·管道·信号量
相国38 分钟前
在Windows里通过WSL安装Ubuntu 22.04
linux·windows·ubuntu·wsl
渔民小镇42 分钟前
4 行代码接入 Spring —— ionet 的生态融合之道
java·服务器·分布式·游戏
海盗12341 小时前
C# OPC UA客户端开发实战
服务器·开发语言·c#
太理摆烂哥1 小时前
进程调度及文件系统的管理
linux
海域云-罗鹏1 小时前
豆包开启付费订阅,想白嫖越来越难了,企业不如部署自己的算力服务器
服务器·人工智能·github
德迅云安全-小潘1 小时前
APP运营服务器配置全攻略:从选型到网络安全,你需要知道的一切
运维·服务器·web安全
许泽宇的技术分享2 小时前
别再把 AI Agent 当“会聊天的脚本”:Hermes Agent 源码级拆解(架构、框架、实战、趋势,一文吃透)
java·linux·网络
HalvmånEver2 小时前
MySQL事务(一)
linux·数据库·学习·mysql