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

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

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

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

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

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

Реализовать класс Bankomat моделирующий работу банкомата. C++
C++ Как реализовать многопоточность в консольном приложении С++
Можно ли реализовать игру змейка в консольном приложении C++
C++ Создать любой класс. Реализовать конструктор, деструктор, продемонстрировать работу
C++ Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети
Подскажите литературу, где основной уклон - на работу с потоками C++
C++ Нужна хорошая книжка по ООП, раскрывающая работу с потоками
Реализовать класс Bankomat, моделирующий работу банкомата C++
C++ Как реализовать таймер в консольном приложении?
C++ Реализовать шаблон класса set, который имитировал бы работу с множествами
C++ Как реализовать циклическую работу программы
Как реализовать работу с очень большими числами? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12528 / 7090 / 797
Регистрация: 27.09.2012
Сообщений: 17,500
Записей в блоге: 2
Завершенные тесты: 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     Реализовать в приложении работу с потоками
Ответ Создать тему
Опции темы

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