C++中第三方库的多线程
Multi threading with third party library in C++
我正在使用当前应用程序中第三方库中的两个函数。第一个函数,又名 .SourceMeasure基本上从某些硬件收集数据,而第二个功能,又名。ComputeErrors 纯粹是基于从第一个函数收集的数据进行计算。测量计算执行将循环 5 次。我正在考虑创建一个多线程来移动.计算错误到工作线程以节省一些时间。如果的话会有问题吗?源度量位于主线程和 .工作线程中的计算错误,它们都来自同一个库?
//The execution is something like this..
for (int i=0; z < 5; z++)
{
Lib.SourceMeasure (data)
Lib.ComputeErorrs (data) //Want to put this in a separate thread
}
我不知道
你正在使用哪个库,但几乎可以肯定的是,在Lib.SourceMeasure()
仍在运行之前,你不能启动Lib.ComputeErorrs()
,在同一数据集上。
您可以做的是设置一个队列和两个线程:
"测量线程":
- 创建数据项
- 打电话给
Lib.SourceMeasure()
- 将数据推送到 FIFO 队列
"计算线程":
- 如果队列为空,则挂起一些
- 从队列中选取数据项
- 使用数据调用
Lib.ComputeErorrs()
根据结果,测量和计算将并行运行(但不是相同的项目,测量将提前一些(。您只需要找到一个线程安全队列。
相关文章:
- 在C++中使用cURL和多线程
- 多线程双缓冲区
- 为什么我的多线程作业队列崩溃
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 试图创建一个多线程程序来查找0-100000000之间的总素数
- 为什么一个向量上的多线程操作很慢
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 全局变量 多读取器 一个写入器多线程安全?
- boost::文件系统::recursive_directory_iterator多线程安全
- 如何阻止TensorFlow的多线程
- 如何在多线程中正确使用unique_ptr进行多态性?
- 并发/多线程:是否可以以这种方式生成相同的输出?
- sigwait() 在多线程程序中不起作用
- 多线程程序中出现意外的内存泄漏
- 静态 constexpr 类成员变量对多线程读取是否安全?
- 多线程比没有线程C++慢
- 具有 C++11 多线程的特征库
- 通过安装信号处理程序关闭多线程应用程序
- Borland C++ 5.02 中使用第三方头文件的多线程
- C++中第三方库的多线程