C++多线程处理数据

本文介绍了在C++中利用多线程处理大规模数据的场景,包括操作系统环境、编译环境和硬件配置。针对服务器处理大量视频特征的需求,通过pthread库创建和管理线程,详细阐述了线程创建、线程同步(pthread_join)以及线程安全问题。实验结果显示,通过合理分配线程,能有效提高CPU利用率和整体处理速度。
摘要由CSDN通过智能技术生成

C++多线程处理数据

运行环境

OS:centos 7
编译环境:gcc 4.8
CPU: 2颗 Intel(R) Xeon(R) CPU E5-2670 v3 @ 2.30GHz,24核48线程。

背景

在服务器处理大规模的数据中,使用单线程处理数据,对多核CPU简直是暴殄天物,除非特定情况如在单核单线程测试算法运行时间。
处理任务:处理将近5000个视频的特征
处理目标:充分利用CPU核,多线程处理。
主要用到的函数:pthread_create pthread_join

int pthread_create(pthread_t *thread,
                    const pthread_attr_t *restrict_attr,
                    void*(*start_rtn)(void*),
                    void *restrict arg);

参数:
第一个参数*thread为指向线程标识符的指针。
第二个参数*restrict_attr用来设置线程属性,上面也可以用NULL,表示使用默认的属性。
第三个参数是线程运行函数的起始地址。
最后一个参数是运行函数的参数,NULL表示无参数
返回0表示创建成功,否则返回错误号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>