|
0 / 0 / 0
Регистрация: 30.09.2018
Сообщений: 8
|
|
Реализовать цикличный вывод строки (10, 100, 1000 циклов) в нескольких потоках (2, 4, 8, 16)15.10.2019, 06:48. Показов 1683. Ответов 8
Необходимо реализовать вывод строки в нескольких потоках (2, 4, 8, 16 потоков) с помощью функций WinAPI. При этом синхронизацию использовать не нужно, то есть должен получится смешанный вывод. Подскажите, пожалуйста, как правильно реализовать распараллеливание вывода на несколько потоков.
0
|
|
| 15.10.2019, 06:48 | |
|
Ответы с готовыми решениями:
8
Вывод в Excel значения в пределах от 100 до 1000 с шагом 100 в столбец Вывод в консоль чисел от 1 до 1000 не используя циклов и условных операторов |
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 15.10.2019, 09:17 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 30.09.2018
Сообщений: 8
|
|
| 15.10.2019, 17:58 [ТС] | |
|
oleg-m1973, У меня сейчас вот такой код, но вывод совсем не тот, который должен быть. Не могу понять, как правильно распределить строку между потоками.
typedef struct { std::string info; unsigned int m_number; unsigned m_cycles; unsigned m_currentThread; }data; unsigned int __stdcall Func(void* data) { data* real = (data*)data; std::cout << "Current thread ID: " << GetCurrentThreadId() << std::endl; for (int j = (real->m_currentThread - 1) * real->m_cycles / real->m_number;j< real->m_currentThread * real->m_cycles / real->m_number;j++) { for (int i = 0;i < real->info.size();++i) { std::cout << real->info[i] << " "; } } return 0; } int main(int argc, char* argv[]) { int threadsNumber; std::string str; std::getline(std::cin, str); std::cout << "Enter the number of threads:\n"; std::cin >> threadsNumber; int cycles; std::cout << "Enter the number of cycles:\n"; std::cin >> cycles; std::vector<HANDLE> threads; HANDLE tmp; data* args = new data; args->info = str; args->m_number = threadsNumber; args->m_cycles = cycles; for (int i = 1;i <= threadsNumber;++i) { args->m_currentThread =i; tmp =(HANDLE)_beginthreadex(0, 0, &Func, args, 0,0); Sleep(1000L); threads.push_back(tmp); } WaitForMultipleObjects(threads.size(), &threads.front(), TRUE, INFINITE); getchar(); return 0; }
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 15.10.2019, 18:02 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 30.09.2018
Сообщений: 8
|
|
| 15.10.2019, 18:10 [ТС] | |
|
oleg-m1973,
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 15.10.2019, 18:13 | ||
|
Сделай без цикла std::cout << real->info << std::endl;
0
|
||
|
0 / 0 / 0
Регистрация: 30.09.2018
Сообщений: 8
|
|
| 15.10.2019, 18:33 [ТС] | |
|
oleg-m1973, Теперь выводятся строчки, но мне нужно, чтобы вывод был посимвольный, и в результате данные между потоками путаются, то есть будет выводится смешанный текст.
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 15.10.2019, 18:56 | |||||||
Сообщение было отмечено Stashon как решение
РешениеДобавлено через 48 секунд Ну уж если приспичило
1
|
|||||||
|
0 / 0 / 0
Регистрация: 30.09.2018
Сообщений: 8
|
|
| 15.10.2019, 19:24 [ТС] | |
|
oleg-m1973, Спасибо большое!! Действительно, убрал задержку и вывод получился такой, как надо.
0
|
|
| 15.10.2019, 19:24 | |
|
Помогаю со студенческими работами здесь
9
Синхронизация работы циклов в разных потоках Записать 1000 случайных чисел в диапазоне (-100, 100)
Цикличный вывод элементов Цикличный вывод данных с бд по указанным маскам Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|