여러 루틴이 순서와 상관 없이 병렬로 실행되게 하고 싶을때 사용을 한다.
parallel_invoke 루틴은 반환할때는 모든 처리 루틴이 전부 동작되고 난 다음에야 리턴이 된다.
총 9개 까지 람다식 및 functor가 등록 될 수 있다.
[-] Collapse
#include <stdio.h>
#include <tchar.h>
#include <time.h>
#include <tbb/tbb.h>
#ifdef _DEBUG
#pragma comment(lib, "tbb_debug.lib")
#else
#pragma comment(lib, "tbb.lib")
#endif // _DEBUG
using namespace tbb ;
int _tmain(int argc, _TCHAR* argv[])
{
task_scheduler_init init ;
parallel_invoke(
[]() -> void
{
::Sleep(1000);
::printf("finish : %d\n", 1000);
},
[]() -> void
{
::Sleep(10000);
::printf("finish : %d\n", 10000);
}) ;
printf("모든 작업 종료 \n") ;
getchar() ;
return 0;
}
#include <tchar.h>
#include <time.h>
#include <tbb/tbb.h>
#ifdef _DEBUG
#pragma comment(lib, "tbb_debug.lib")
#else
#pragma comment(lib, "tbb.lib")
#endif // _DEBUG
using namespace tbb ;
int _tmain(int argc, _TCHAR* argv[])
{
task_scheduler_init init ;
parallel_invoke(
[]() -> void
{
::Sleep(1000);
::printf("finish : %d\n", 1000);
},
[]() -> void
{
::Sleep(10000);
::printf("finish : %d\n", 10000);
}) ;
printf("모든 작업 종료 \n") ;
getchar() ;
return 0;
}
'C++ > Intell C++' 카테고리의 다른 글
간단한 TBB parallel_for 예제 (0) | 2014.09.16 |
---|---|
간단한 TBB parallel_reduce 예제 (0) | 2014.09.16 |
간단한 TBB parallel_while 예제 (0) | 2014.09.16 |
간단한 TBB parallel_sort 예제 (0) | 2014.09.16 |