2012-04-12 10 views
3

QtConcurrentの代わりにQRunnableを使用しているコードを指している可能性があります.QtdocでQRunnableの例が見つかりません。QRunnable - 使用方法、例

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

答えて

6

QRunnableはインターフェイスです。だから、むしろ(例えば)「QThreadPool例」を探した方が良いだろう「QRunnable例」を探しているよりも、例えば:

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

あなたはそのページにさらに読めば、それが言及QtConcurrentの本当の価値は、STLアルゴリズムをSTLコンテナに適用するのと同じことをしているときです。 QRunnableでスレッドプールを使用するのは、かなり無関係なタスクを実行するだけの場合に適しています。

QtConcurrentはQThreadPoolの上に構築されます。表記法は便利で、パターンを自分で書く必要がありませんが、本質的にコードを手渡すことができます。しかし、QtConcurrentパターン(MapReduceなど)を考えると、他には考えていない並列処理の機会を見て、コードを書くのが簡単で、代替アプローチを試してパフォーマンスを比較する方が簡単です。

関連する問題