Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于Qt的CD裂土器的线程构建块(TBB)? 我在C++和QT中构建了一个CD开膛手应用程序。我想并行化应用程序,使多个轨道可以同时编码。因此,我以这样一种方式构建了应用程序,即对轨迹进行编码是一项“任务”,我正在研究一种机制,以同时运行一些任务。当然,我可以使用线程完成这项工作,并编写自己的任务队列或工作管理器,但我认为英特尔的线程构建块(TBB)可能是一个更好的工具。不过,我有几个问题 将WAV文件编码为FLAC、Ogg Vorbis或Mp3文件是否与tbb::任务一样有效?教程文档指出,“如果线程频繁阻塞,则在使用任务调度器时会导致性能损失”。我不认为我的编码任务会经常阻塞互斥体,但需要相对频繁地访问磁盘,因为他们必须从磁盘读取WAV数据才能进行编码。从本教程所述的意义上讲,此级别的磁盘活动是否存在问题 TBB是否与Qt配合良好?使用Qt线程时,可以跨线程透明地使用Qt的信号/插槽机制。如果我使用tbb::tasks而不是Qt线程,情况会一样吗?还有其他的“陷阱”吗_C++_Multithreading_Qt_Concurrency_Tbb - Fatal编程技术网

基于Qt的CD裂土器的线程构建块(TBB)? 我在C++和QT中构建了一个CD开膛手应用程序。我想并行化应用程序,使多个轨道可以同时编码。因此,我以这样一种方式构建了应用程序,即对轨迹进行编码是一项“任务”,我正在研究一种机制,以同时运行一些任务。当然,我可以使用线程完成这项工作,并编写自己的任务队列或工作管理器,但我认为英特尔的线程构建块(TBB)可能是一个更好的工具。不过,我有几个问题 将WAV文件编码为FLAC、Ogg Vorbis或Mp3文件是否与tbb::任务一样有效?教程文档指出,“如果线程频繁阻塞,则在使用任务调度器时会导致性能损失”。我不认为我的编码任务会经常阻塞互斥体,但需要相对频繁地访问磁盘,因为他们必须从磁盘读取WAV数据才能进行编码。从本教程所述的意义上讲,此级别的磁盘活动是否存在问题 TBB是否与Qt配合良好?使用Qt线程时,可以跨线程透明地使用Qt的信号/插槽机制。如果我使用tbb::tasks而不是Qt线程,情况会一样吗?还有其他的“陷阱”吗

基于Qt的CD裂土器的线程构建块(TBB)? 我在C++和QT中构建了一个CD开膛手应用程序。我想并行化应用程序,使多个轨道可以同时编码。因此,我以这样一种方式构建了应用程序,即对轨迹进行编码是一项“任务”,我正在研究一种机制,以同时运行一些任务。当然,我可以使用线程完成这项工作,并编写自己的任务队列或工作管理器,但我认为英特尔的线程构建块(TBB)可能是一个更好的工具。不过,我有几个问题 将WAV文件编码为FLAC、Ogg Vorbis或Mp3文件是否与tbb::任务一样有效?教程文档指出,“如果线程频繁阻塞,则在使用任务调度器时会导致性能损失”。我不认为我的编码任务会经常阻塞互斥体,但需要相对频繁地访问磁盘,因为他们必须从磁盘读取WAV数据才能进行编码。从本教程所述的意义上讲,此级别的磁盘活动是否存在问题 TBB是否与Qt配合良好?使用Qt线程时,可以跨线程透明地使用Qt的信号/插槽机制。如果我使用tbb::tasks而不是Qt线程,情况会一样吗?还有其他的“陷阱”吗,c++,multithreading,qt,concurrency,tbb,C++,Multithreading,Qt,Concurrency,Tbb,感谢您提供的任何见解。为什么不使用?TBB被认为与其他线程机制一起工作良好,甚至是透明的,因此理论上不应阻止您在同一程序中使用QT的线程类。如果有什么东西可以更自然地与QT线程一起工作,比如GUI,那么使用它们并尽可能地将TBB内容隔离开来 我看不出您在当前概述您的设计时充分利用了TBB。您可以在最粗略的级别并行化文件。正如您所怀疑的,由于CD是一个非常慢的设备,您可能会花费比实际保存更多的时间来回查找多个文件中的数据 TBB带来的真正好处应该包括利用转换过程中存在的任何数据和/或任务并行性。例

感谢您提供的任何见解。

为什么不使用?

TBB被认为与其他线程机制一起工作良好,甚至是透明的,因此理论上不应阻止您在同一程序中使用QT的线程类。如果有什么东西可以更自然地与QT线程一起工作,比如GUI,那么使用它们并尽可能地将TBB内容隔离开来

我看不出您在当前概述您的设计时充分利用了TBB。您可以在最粗略的级别并行化文件。正如您所怀疑的,由于CD是一个非常慢的设备,您可能会花费比实际保存更多的时间来回查找多个文件中的数据

TBB带来的真正好处应该包括利用转换过程中存在的任何数据和/或任务并行性。例如,您能否从流中提取任何字节块,并独立于流的任何部分在前后对其应用任何转换?转换有多个步骤可以并行化吗