树莓派C++多线程


本文记录了自己使用C++在树莓派中编写多线程程序加快运行代码运行速度。

1. 多线程基础知识

参考了相关书籍与网站:http://wiki.jikexueyuan.com/project/cplusplus-concurrency-action/
经过几天的系统学习,最终放弃。
多线程基本代码:

#include <thread>		// 多线程头文件
std::thread t(func, paras);		// 启动线程,执行func,func的参数为paras
t.join();				// 等待线程执行结束

采用一种较为简单的方式进行线程返回数据。线程中修改全局变量,从而传递变量。

2. 开未知数量的多线程并行处理

由于项目需要识别多个二维码,所以可以将每个二维码区域并行识别,每个线程改变全局vector的每一位。

g_dmString.clear();		// 清空变量
for (int i = 0; i < d_MAX_THREAD_NUMBER; ++i){
	g_dmString.push_back("");		// 开辟空间
}

// 使用vector开辟线程
vector<thread> v_thread(d_MAX_THREAD_NUMBER);
for (int i = 0; i < threadNumber; ++i)	{
	v_thread[i] = thread(func, paras, i);
}

// 等待线程返回
for (int i = 0; i < threadNumber; ++i){
	v_thread[i].join();
}
// 接下来可以读取全局变量 g_dmString的值

3. 注意事项

在linux下需要包含 pthread 库,否则会在线程初始化 thread 时报错。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值