Я пытаюсь изучить все варианты нового стандарта С++ 11 в глубину, используя std:: async и прочитав его определение, я заметил 2 вещи, по крайней мере, под linux с gcc 4.8.1:
- он назвал async, но он получил действительно "последовательное поведение", в основном в строке, где вы называете будущее, связанную с вашей асинхронной функцией foo, программа блокирует до завершения выполнения foo.
- это зависит от той же самой внешней библиотеки, что и другие, и более эффективных, неблокирующих решений, что означает
pthread
, если вы хотите использоватьstd::async
, вам нужен pthread.
в этот момент для меня естественно, почему вы выбираете std:: async даже для простого набора функторов? Это решение, которое даже не масштабируется, тем больше будет ваше будущее, тем менее отзывчивой будет ваша программа.
Я что-то упустил? Можете ли вы показать пример, который предоставляется для выполнения в async, без блокировки, способом?