Jas*_*ele 5 c++ concurrency qt multithreading tbb
我正在用C++和Qt构建一个CD ripper应用程序.我想并行化应用程序,以便可以同时编码多个轨道.因此,我以这样的方式构建应用程序,即对轨道进行编码是一个"任务",我正在研究一种机制来同时运行一些这些任务.当然,我可以使用线程完成此任务并编写自己的任务队列或工作管理器,但我认为英特尔的线程构建模块(TBB)可能是一个更好的工具.不过,我有几个问题.
感谢您提供的任何见解.
TBB 应该与其他线程机制一起工作得很好,甚至是透明的,所以理论上应该没有什么可以阻止您在同一程序中使用 QT 的线程类。如果有一些东西可以更自然地与 QT 线程一起工作,例如 GUI,请使用它们并尽可能或想要地隔离 TBB 内容。
我认为您没有充分利用 TBB,因为您目前概述了您的设计。您可以在最粗略的层面上并行化文件。正如您所怀疑的,由于 CD 是一种速度相当慢的设备,因此您可能会花费更多的时间从多个文件中来回查找数据,而不是实际保存的时间。
TBB 的真正效益应该涉及利用转换过程中存在的任何数据和/或任务并行性。例如,您可以从流中提取任何字节块并独立于流之前或之后的任何部分对其应用任何转换吗?是否有多个可以并行的转换步骤?