Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 117
1

Многопоточность С++

11.12.2016, 02:43. Показов 811. Ответов 2
Метки нет (Все метки)

Добрый вечер!

написал вот такую программку.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
std::vector<std::thread> threads;
    std::recursive_mutex mutex;
 
    for (int i = 0; i < 100; ++i)
    {
        threads.push_back(std::thread([&mutex, &i]()
        {
            std::lock_guard<std::recursive_mutex> guard(mutex);
            
            std::cout << std::left << " "
                << std::setw(8) << std::this_thread::get_id() 
                << std::setw(12) << "hello world " 
                << i 
                << std::endl; 
        }));
    }
    
    for (auto& thread : threads)
    {
        thread.join();
    }

Я думал что будет последовательный вывод от 0 до 99. Но почему-то нет...

Не могли бы вы объяснить почему? И что нужно сделать чтобы он был последовательным
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2016, 02:43
Ответы с готовыми решениями:

Многопоточность
Как создать 2 функции. Главную и второстепенную. Чтобы в определенный момент из главной в...

Многопоточность c++
Добрый день! Я только начинаю изучать многозадачность в c++ и у меня возник вопрос о том как...

C++ и Многопоточность.
Всем привет. Написал код с использованием Curl для авторизации в вконтакте (могу скинуть код)....

Многопоточность
Столкнулся с проблемой, что не совсем понимаю, что такое многопоточность. С многозадачностью все...

2
nd2
3422 / 2802 / 1252
Регистрация: 29.01.2016
Сообщений: 9,426
11.12.2016, 06:54 2
Цитата Сообщение от krazyd Посмотреть сообщение
Я думал что будет последовательный вывод от 0 до 99. Но почему-то нет...
Не могли бы вы объяснить почему?
Потому что параллельность - это не последовательность.
Цитата Сообщение от krazyd Посмотреть сообщение
И что нужно сделать чтобы он был последовательным
Не использовать параллельность.
0
11 / 11 / 6
Регистрация: 13.11.2016
Сообщений: 57
11.12.2016, 09:22 3
Может, я не понимаю логику программы, но Вы точно хотите передавать &i по ссылке? Тогда выводиться будут не все числа от 0 до 99, но некоторые из них будут выводиться несколько раз.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2016, 09:22

Многопоточность в С++
Добрый день! Если я создам экземпляр класса в одном потоке и начну одновременно из нескольких...

Многопоточность
Есть задание: Написать и протестировать функцию, которая находит в массиве минимальный по модулю...

Многопоточность
Здраствуйте! Объясните пожалуйста понятными словами что такое многопоточность и для чего она нужна?

Многопоточность в C++ и C++11
как я понял, многопоточность появилась в С++11 cтандарте. Почитал что его вроде как visual studio...

Многопоточность
Не особо понимаю мнопоточность в с++. Есть задание типа.... Сделать программу, иммитирующую работу...

Многопоточность
При добавлении больше 10000 элементов в таблицу на форму форма зависает, как это исправить?...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru