Open ChunelFeng opened 3 months ago
void demo4() {
tf::Taskflow taskflow;
g_test_cnt = 0;
auto [A1,A2,A3,A4] = taskflow.emplace(
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); });
auto [B1,B2, B3,B4] = taskflow.emplace(
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); });
auto [C1,C2,C3,C4] = taskflow.emplace(
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); });
auto [D1,D2,D3,D4] = taskflow.emplace(
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); },
[]() {
g_test_cnt++;
return CStatus(); });
B1.succeed(A1, A2, A3, A4);
B2.succeed(A1, A2, A3, A4);
B3.succeed(A1, A2, A3, A4);
B4.succeed(A1, A2, A3, A4);
C1.succeed(B1, B2, B3, B4);
C2.succeed(B1, B2, B3, B4);
C3.succeed(B1, B2, B3, B4);
C4.succeed(B1, B2, B3, B4);
D1.succeed(C1, C2, C3, C4);
D2.succeed(C1, C2, C3, C4);
D3.succeed(C1, C2, C3, C4);
D4.succeed(C1, C2, C3, C4);
tf::Executor executor(4);
auto start_ts_ = std::chrono::high_resolution_clock::now();
for (int i = 0; i < 100000; i++) {
executor.run(taskflow).wait();
}
std::chrono::duration<double, std::milli> span = std::chrono::high_resolution_clock::now() - start_ts_;
printf("----> [taskflow] time cost is : [%0.2lf] ms \n",
span.count());
}