Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
melikov
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 15
#1

Реализовать в приложении работу с потоками - C++

10.11.2016, 09:28. Просмотров 101. Ответов 1
Метки нет (Все метки)

Создать 3 функции потоков, каждая из которых выводит в цикле из 25 итераций сообщение «Это поток № номер_потока». Сообщение заносить в строку, на которую указывает глобальная переменная str. Сделать синхронизацию потоков при помощи мьютексов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2016, 09:28     Реализовать в приложении работу с потоками
Посмотрите здесь:

Нужна хорошая книжка по ООП, раскрывающая работу с потоками - C++
Привет! Не подскажите хорошую книгу по ООП, особенно интересен вопрос ,создания многопоточного приложения(какой-нибудь игры и т.д). Заранее...

Подскажите литературу, где основной уклон - на работу с потоками - C++
Доброго времени суток. Знаю, что список литературы лежит на форуме, но не могли бы вы подсказать в какой книжечке хорошо разжеваны потоки и...

Как реализовать многопоточность в консольном приложении С++ - C++
Добрый день уважаемые программисты и системные администраторы! Я начинающий программист на С++ и мне необходимо написать программу в...

Как реализовать таймер в консольном приложении? - C++
И как-нибудь без while и sleep, чтобы программа не висела. Пытался делать через winapi, но не понял как функцию, выполняемую при "тикании"...

Можно ли реализовать игру змейка в консольном приложении - C++
можно ли реализовать игру змейка в консольном приложении??? обдумывая решения столкнулся с проблемами вывода змейки при поворотах... Можете...

Как реализовать циклическую работу программы - C++
Есть программа которая анализирует изображение и результаты дописывает в файл. Как сделать так, чтобы программа каждые 10 секунд проводила...

Как реализовать работу с очень большими числами? - C++
Добрый день всем! Очень необходимы светлые мозги, ибо не могу понять в чем проблема. Есть работающая программа: #include...

Реализовать класс Bankomat, моделирующий работу банкомата - C++
Ребят беда, такая интересная задачка попалась мне, вроде ничего особенного но посмотрев глубже показалось очень тяжкой, половина реализаций...

Реализовать класс Bankomat моделирующий работу банкомата. - C++
Реализовать класс Bankomat моделирующий работу банкомата. В классе должны содержатся поля для хранения идентификационного номера банкомата,...

Реализовать шаблон класса set, который имитировал бы работу с множествами - C++
Здравствуйте! Кто-нибуть знает, как это делать? Если да подскажите пожалуйста! Реализовать шаблон класса set, который имитировал бы...

Создать любой класс. Реализовать конструктор, деструктор, продемонстрировать работу - C++
помогите создать класс любой можно про автомобиль,мяч,прямоугольник и тд...,чтобы были конструктор,диструктор,продемонстрировать работу.. ...

Реализовать программу, демонстрирующую работу с объектами двух типов: SymbString и DecString - C++
Помогите пожалуйста решить задачу. программу, демонстрирующую работу с объектами двух типов: SymbString(символьная строка) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
10.11.2016, 09:45     Реализовать в приложении работу с потоками #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//clang 3.7.0
 
#include <iostream>
#include <thread>
#include <mutex>
#include <string>
#include <vector>
 
 
 
std::string str;
std::mutex mut;
 
 
void threadFunc(unsigned num)
{
    using namespace std::literals::string_literals;
    std::string line = "thread №: "s + std::to_string(num) + "\n"s;
    for (unsigned i = 0u; i < 25u; ++i) {
        std::lock_guard<std::mutex> l(mut);
        str += line;
    }
}
 
 
int main()
{
    unsigned threadsCount = 3u;
    std::vector<std::thread> ths;
    for (unsigned i = 0u; i < (threadsCount-1u); ++i) {
        ths.emplace_back(threadFunc, i + 1u);
    }
    threadFunc (ths.size() + 1u);
    
    while (!ths.empty()) {
        if (ths.back().joinable()) {
            ths.back().join();
        }
        ths.pop_back();
    }
    std::cout << str << std::endl;
}
http://rextester.com/CCCL63502
Yandex
Объявления
10.11.2016, 09:45     Реализовать в приложении работу с потоками
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru