Описание тега stdasync

The C++11 function template std::async() provides a mechanism to launch a function potentially in a new thread and provides the result of the function in a future object.
0 ответов

Исключения из boost::async() теряют тип

Буст-версия: 1.61, GCC версия 6.2.0, C++14 Исключения внутри boost::async() вызов, кажется, теряет свой тип, в то время как он работает правильно с std::async, Есть ли принципиальная разница между std::async а также boost::async Я скучаю? Следующий …
20 июл '17 в 03:30
1 ответ

Как асинхронно выполнить метод от unique_ptr до объекта?

Я создал уникальный указатель на объект, подобный этому: std::unique_ptr<MyClass> myObj(new MyClass(arg1, arg2)); И там есть метод, который мне нужно выполнить в параллельном потоке. Я не хочу ждать, пока это закончится. Он будет запускать цик…
18 апр '14 в 23:50
2 ответа

В чем проблема с std::async?

В начале этого клипа из C++ And Beyond я что-то слышал о проблемах с std::async, У меня есть два вопроса: Для младшего разработчика, есть ли набор правил, что делать и чего избегать при использовании std::async? Какие проблемы представлены в этом ви…
20 сен '12 в 08:19
1 ответ

std::thread to std::async делает ОГРОМНОЕ повышение производительности. Как это может быть возможно?

Я сделал тестовый код между std:: thread и std::async. #include <iostream> #include <mutex> #include <fstream> #include <string> #include <memory> #include <thread> #include <future> #include <functional&…
21 мар '16 в 04:13
1 ответ

std::async, возвращающее значение. Неизвестная ошибка

Я работаю с Windows Kinect в C++. Я пытаюсь проверить, прошла ли правая рука справа налево, как вытирающее движение. Я пытаюсь работать с std:: async, потому что мне нужно возвращаемое значение метода. Я уже погуглил ошибку, которую получил, и понят…
26 сен '13 в 09:20
2 ответа

Почему std::async медленный по сравнению с простыми отдельными потоками?

Мне несколько раз говорили, что я должен использовать std::async для огня и забудьте тип задач с std::launch::async параметр (так что он делает это волшебство в новом потоке выполнения предпочтительно). Воодушевленный этими заявлениями, я хотел посм…
21 май '16 в 12:24
1 ответ

Асинхронная функция, дающая противоречивые результаты

У меня есть функция, которая работает асинхронно. К сожалению, он только иногда выплевывает правильный ответ. Значения представлены futures[i].get() меняйте каждый раз, когда я запускаю код. Я новичок в многопоточности. double async_func() const { v…
25 фев '15 в 22:00
2 ответа

std::async с перегруженными функциями

Возможный дубликат: разрешение перегрузки std::bind Рассмотрим следующий пример C++ class A { public: int foo(int a, int b); int foo(int a, double b); }; int main() { A a; auto f = std::async(std::launch::async, &A::foo, &a, 2, 3.5); } Это д…
20 ноя '14 в 06:44
1 ответ

Как правильно вернуть большие данные из std::future в C++11

Я немного озадачен тем, как правильно возвращать большие данные из асинхронной функции в C++. Возьмите для примера этот код. Он создает большой вектор в функции и возвращает выделенный вектор. #include <unistd.h> #include <iostream> #inc…
24 июл '15 в 14:54
4 ответа

В чем разница между packaged_task и async

Работая с многопоточной моделью C++11, я заметил, что std::packaged_task<int(int,int)> task([](int a, int b) { return a + b; }); auto f = task.get_future(); task(2,3); std::cout << f.get() << '\n'; а также auto f = std::async(std::…
09 авг '13 в 09:34
1 ответ

Как преждевременно уничтожить потоки std::async до того, как они будут * завершены * без * использования std::atomic_bool?

У меня есть функция, которая принимает обратный вызов, и использовал его для работы на 10 отдельных потоков. Однако часто бывает так, что не вся работа необходима. Например, если желаемый результат получен в третьем потоке, он должен прекратить всю …
16 окт '17 в 03:08
1 ответ

std::async с gcc 7.2 нужна опция ссылки pthread

В следующем коде нужна опция pthread link для компиляции, и я не понимаю почему. Есть ли у вас какие-либо идеи? Я использую gcc 7.2.0 #include <future> int sum = 0; void func() { for(int i=0; i < 10; ++i) sum +=i; } int main() { std::future…
18 фев '18 в 00:21
1 ответ

Как правильно удалить указатель на функцию обратного вызова.

У меня есть MainProgram.exe, который вызывает MyDll.dll и использует curl для получения данных о функции обратного вызова. Я завернул curl в функцию CurlGetData, которая создает экземпляр curl и выполняет curl_easy_perform. Вот мой код: //Interface …
23 фев '15 в 12:30
1 ответ

Почему цикл for с многопоточностью не будет иметь такой же высокой производительности, как с однопоточным?

Я считал, что лучше обрабатывать простые и тяжелые работы (например, матричные вычисления) с многопоточностью, чем с однопоточностью, поэтому я протестировал следующий код: int main() { constexpr int N = 100000; std::random_device rd; std::mt19937 m…
27 фев '16 в 05:29
1 ответ

Почему время матрицы VC++ ускоряется при использовании openMP по сравнению с асинхронностью?

Я кодировал умножение вектора на матрицу двумя способами, один с openMP, другой с std::async. Я ожидал, что производительность будет практически одинаковой. OpenMP работает медленно при первом вызове, возможно потому, что откладывает создание пула п…
24 окт '17 в 15:39
1 ответ

C++ - отображать индикатор выполнения при использовании std::async

Поэтому я работаю над трассировщиком лучей, и чтобы сократить время рендеринга, я использовал std::async для независимого вычисления пикселей. Я использовал этот учебник, и все отлично работает, и действительно, мне удалось сэкономить около 70% врем…
18 апр '18 в 10:44
2 ответа

std::future как параметр функции C++

Рассмотрим следующий код void printPromised(std::future<int> f) { std::cout << f.get() << std::endl; } int main() { printPromised(std::async(std::launch::async, [](){ return 8; })); // This works auto f = std::async(std::launch::as…
28 ноя '14 в 10:05
1 ответ

Использование std::async в конструкторе

Я новичок в C++11 std::async и я не могу понять, почему код ниже никогда не печатает bar, Может ли кто-то пролить свет на это для меня? class Thready { public: Thready() { std::async(std::launch::async, &Thready::foo, this); } void foo() { while…
13 окт '16 в 20:30
1 ответ

C++17 async: запуск метода this'блокирует весь объект

Я разрабатываю игру. Скажем, есть объект LoadingState с этими методами (и некоторыми другими): Создайте Обновить нагрузка Обновление вызывается каждый раз, когда тактовые импульсы процессоров, в то время как create будет вызываться только один раз, …
1 ответ

Использование std::bind для захвата пакета параметров "по ходу"

Я пытаюсь реализовать std::async с нуля, и наткнулся на сбой с аргументами типа только для перемещения. Суть этого в том, что C++14 init-captures позволяет нам захватывать отдельные переменные "по ходу" или "при совершенной пересылке", но они не поз…