Реализация потоков с использованием C ++ - PullRequest
0 голосов
/ 20 ноября 2008

В моем приложении есть вызов API, где я проверяю время, затраченное на один вызов. Я поместил это в цикл FOR и использовал 10000 вызовов, чтобы получить среднее время всех вызовов. Теперь возникла проблема, заключающаяся в том, что само приложение, использующее API, является многопоточным. Если я хочу, чтобы моя заявка также делала то же самое, как бы я поступил так?

Платформа REL, и моя цель - отправлять несколько вызовов одновременно с одинаковыми или разными параметрами. Может ли это быть реализовано в C ++, и если да, то какие библиотечные функции использовать, и можно ли привести пример для этого?

Ответы [ 7 ]

7 голосов
/ 20 ноября 2008

Вероятно, лучшая библиотека C ++ для потоков - это библиотека потоков в Boost, но, как и для всех потоков C ++, вам придется вручную выполнять синхронизацию. Вам нужно будет использовать типы мьютекса и блокировки, чтобы он работал правильно. Ваш вопрос не очень ясен, поэтому я больше не могу вам помочь (хотя я думаю, что вам на самом деле не нужны потоки, но я могу быть совершенно недопонимаю).

1 голос
/ 20 ноября 2008

Я не знаю платформу REL.

Я могу предложить альтернативу OMP, это не совсем потоки, скажем так, но она выполняет свою работу и ее довольно легко использовать для такого сценария. Видимо, он работает на некоторых компиляторах .

1 голос
/ 20 ноября 2008

Если вы читаете исходный код Miranda IM, он должен помочь вам начать работу. Это очень хорошо сделано, и в коде есть несколько полезных советов о том, как уменьшить смещения памяти других исполняемых файлов (в Windows), чтобы они загружались быстрее.

http://www.miranda -im.org / разработка /

0 голосов
/ 27 мая 2012

Начиная с C ++ 11 больше нет необходимости использовать Boost. C ++ 11 включает std::thread, поддержку мьютексов, переменных условий и т. Д., Во многом как в Boost.

Вы можете взглянуть на то, что C ++ 11 предоставляет в плане многопоточности, в справочнике C ++ .

0 голосов
/ 20 ноября 2008

Я не знаком с платформой REL. В целом я предпочитаю Intel TBB для многопоточности, но сейчас он работает только на чипах x86.

0 голосов
/ 20 ноября 2008

Pthreads - это то, как вы делаете это с Linux. Солярис Темы для Соляриса.

0 голосов
/ 20 ноября 2008

На какой платформе? Почти все поддерживают потоки, и я думаю, что у них всех есть документация о том, как создать поток. В Windows вы вызываете API CreateThread.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...