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

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

Восстановить пароль Регистрация
 
melikov
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 12
10.11.2016, 09:28     Реализовать в приложении работу с потоками #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++ Как реализовать циклическую работу программы
Как реализовать работу с очень большими числами? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 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     Реализовать в приложении работу с потоками
Ответ Создать тему
Опции темы

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