Многопоточность (Boost)

программирование C++ код многопоточность boost

Например, есть следующий код:

#include <boost/thread/thread.hpp>
#include <iostream>

using namespace std;

void hello_world()
{
while(1)
{
cout << "Здравствуй мир, я - thread!" << endl;
}
}

int main(int argc, char* argv[])
{
// запустить новый поток, вызывающий функцию "hello_world"
boost::thread my_thread(&hello_world);
// ждем завершения потока
my_thread.join();

return 0;
}

Как остановить выполнение потока?
Ответы:
У Thread есть замечательный метод  my_thread.timed_join(), который завершает поток через определенный интервал.
Например, можно написать вместо my_thread.join() следующее:
my_thread.timed_join(boost::posix_time::millisec(100));
И поток будет завершен через 100 мс.
Подробнее об использовании этого метода в ссылке ниже.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.