Does Windows use std :: thread internally with PPL?

Is the implementation of Visual Studio 2015 std :: thread internally based on the PPL task system?

In my question, does it make sense to use std :: thread for several tasks, because they are already balanced in the common thread pool, or is it better to perform tasks using PPL tasks?

According to ( Which std :: async implementations use thread pools? ), This seems to be the case, but since the question is quite old, I would like to get an “official” answer.

+4
source share
2 answers

Yes and no.

std::thread:
std::thread (thread )
_Launch (xthread ),
 _Thrd_startX (xthread ),
 _Thrd_start (cthread.c ),
 _beginthreadex (cthread.c ).

_beginthreadex, atlbase.h microsoft :

// _beginthreadex calls CreateThread which will set the last error
// value before it returns.


PPL.

, std::async concurrency::create_task , Windows API.

std::thread ...?

Casablanca, PPL. PPL .
. threadpool + std::future + std::promise , concurrency::task. # TPL. , performace .

+6

:

Weve STL, Concurrency Runtime (ConcRT). ConcRT (2012), , , . API Windows

IIRC, PPL ConcRT, , PPL. . . stacktrace, ConcRT std::thread. PPL .

+6

All Articles