6

QtConcurrent の代わりに QRunnable を使用しているコードを指摘できます: Qtdoc で QRunnable の例が見つかりません。

同じアプリケーションで QRunnable と QtConcurrent を試したことがありますか?比較したパフォーマンスについてコメントしていただけますか?

4

1 に答える 1

9

QRunnableインターフェースです。したがって、「例」を探すよりも、次のQRunnableような「例」を探す方がよいでしょうQThreadPool

http://doc.qt.io/qt-4.8/thread-basics.html#example-1-using-the-thread-pool

そのページをさらに読むと、QtConcurrent の真の価値は、STL アルゴリズムを STL コンテナーに適用するのと同様のことを行っている場合であることが言及されています。QRunnable でスレッド プールを使用することは、まったく関係のないタスクを実行する場合に適しています。

QtConcurrent は QThreadPool の上に構築されています。これは記法上は便利で、自分でパターンを書く必要はありませんが、コードを手渡すよりも本質的にスピードアップするわけではありません。しかし... QtConcurrent パターン (MapReduce など) の観点から考えると、他の方法では考えられなかった並列処理の機会を見つけるのに役立つ場合があります。また、記述するコードが少ないということは、別のアプローチを試してそれらのパフォーマンスを比較するのが簡単になることを意味します。

于 2012-04-12T16:12:19.547 に答える