structured_task_group クラス

説明

structured_task_grouptask_group に似ていますが、一部の機能しか含まれていません。この制限は、将来のパフォーマンスの最適化のためです。制限は次のとおりです。

サンプル

下記の fork_join 関数は、リソースさえ許せば f1()f2() を並列に評価します。

    #include "tbb/task_group.h"
     
    using namespace tbb;
     
    template<typename Func1, typename Func2>
    void fork_join( const Func1& f1, const Func2& f2 ) {
        structured_task_group group;
     
        task_handle<Func1> h1(f1);
        group.run(h1);              // タスクを作成
     
        task_handle<Func2> h2(f2);
        group.run(h2);              // 別のタスクを作成
     
        group.wait();               // 両方のタスクが完了するのを待つ
        // h1 と h2 を破棄しても安全
    }

メンバー

 namespace tbb {
        class structured_task_group {
        public:
            structured_task_group();
            ~structured_task_group();
     
            template<typename Func> 
            void run( task_handle<Func>& handle );
     
            template<typename Func>
            void run_and_wait( task_handle<Func>& handle );
     
            task_group_status wait(); 
            bool is_canceling();
            void cancel();
        };
    }
     

関連情報