Dlaczego powinienem używać std :: async?

Staram się zgłębić wszystkie opcje nowego standardu C ++ 11, używając std :: async i czytając jego definicję, zauważyłem 2 rzeczy, przynajmniej pod linuxem z gcc 4.8.1:

to jest nazwaneasynchroniczny, ale ma naprawdę „sekwencyjne zachowanie”, w zasadzie w wierszu, w którym nazywaszprzyszłość związane z twoją funkcją asynchronicznąbla, program blokuje się aż do wykonaniabla to jest zakończone.to zależy od dokładnie tej samej zewnętrznej biblioteki co inne i lepszych, nieblokujących rozwiązań, co oznaczapthread, jeśli chcesz użyćstd::async potrzebujesz pthread.

w tym momencie naturalne jest dla mnie pytanie, dlaczego wybrać std :: async na nawet prosty zestaw funktorów? Jest to rozwiązanie, które w ogóle nie skaluje się, im więcej dzwonisz w przyszłości, tym mniej reaguje Twój program.

Czy czegoś mi brakuje? Czy możesz pokazać przykład, który jest dozwolony do wykonania w asynchroniczny, nie blokujący sposób?

questionAnswers(5)

yourAnswerToTheQuestion