|
Заблокирован
|
||||||
Многопоточность. Вывести сколько раз значения второго массива попадаются в первом массиве14.06.2017, 15:30. Показов 4910. Ответов 59
Метки нет (Все метки)
У меня есть задачка: Есть два массива и нужно вывести сколько раз значения второго массива попадаются в первом масиве, я это сделала, но нужно использовать многопоточность, И тут нужна ваша помощь.
Скидываю свой код, сильно не бросайте камнями. Я попробывала раздилить на два потока. Но хочется правильно и красво сделать.
никто не знает?((
0
|
||||||
| 14.06.2017, 15:30 | |
|
Ответы с готовыми решениями:
59
Вывести число, которое показывало бы сколько раз в первом столбце были значения больше 10
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 14.06.2017, 18:48 | |
|
1
|
|
|
Заблокирован
|
|
| 14.06.2017, 18:52 [ТС] | |
|
MrGluck, а оно точно не на одном потоке работает?
0
|
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||||
| 14.06.2017, 19:02 | ||||||
|
oksanavol, если не верите, убедитесь в этом явно
1
|
||||||
|
93 / 69 / 22
Регистрация: 17.10.2011
Сообщений: 235
|
||||||
| 15.06.2017, 09:58 | ||||||
|
может как-то так
0
|
||||||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 15.06.2017, 11:48 | |
|
vndtta, у вас data races при выводе. Порядок operator<< не определён.
0
|
|
|
93 / 69 / 22
Регистрация: 17.10.2011
Сообщений: 235
|
|
| 15.06.2017, 12:12 | |
|
нет, ну можно на них повесить мьютекс, но если не вешать, то сразу видно, что потоки работают одновременно
главное же, чтоб sum посчиался верно, и никакие два потока не обрабатывали один и тот же элемент Добавлено через 8 минут п.с. этот вывод, кроме суммы, вообще не нужен, его роль больше как комментария
0
|
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 15.06.2017, 12:22 | ||
|
vndtta, Можно формировать вывод в буфер, а потом один раз вызывать operator<< у std::cout. Можете посмотреть пример здесь
Само по себе обращение к std::cout из нескольких потоков разрешено, не определён лишь порядок вызова operator<< http://www.cplusplus.com/refer... tor%3C%3C/
0
|
||
|
93 / 69 / 22
Регистрация: 17.10.2011
Сообщений: 235
|
||
| 15.06.2017, 13:55 | ||
|
0
|
||
|
What a waste!
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
|
||||||
| 15.06.2017, 15:17 | ||||||
|
Я бы как-нибудь так попробовал:
Кликните здесь для просмотра всего текста
http://ideone.com/LTTluC
0
|
||||||
|
Заблокирован
|
||||||||
| 18.06.2017, 18:41 | ||||||||
2 ++um[x]; )))), а не лучше написать так? um[x]++; Но так же не пописькамеришь так же? 3 Согласно коду, создается столько потоков, сколько чисел в массиве, т.е. если будет в массиве 100500 чисел, то, соответственно будет и 100500 потоков создано. Да уж, ... ))) Но суть, состоит в том, что на самом деле многопоточности вообще нет, он создает поток и ждает пока тот не закончится и так каждый раз. 4 Функция Foo при реальной многопоточности бы легла сразу - ибо cout вообще никак не синхронизирован. Т.е. сразу видно, что человек в принципе не разбирается в том, что пишет. И не является тем, кем себя позиционирует.
0
|
||||||||
|
What a waste!
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
|
|
| 18.06.2017, 20:58 | |
|
0
|
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||||||
| 18.06.2017, 21:22 | |||||||
|
При чём здесь фаллометрия? Итого всю критику могу обобщить лишь
1
|
|||||||
|
Заблокирован
|
||||||
| 19.06.2017, 07:19 | ||||||
|
0
|
||||||
|
2 / 2 / 0
Регистрация: 18.06.2017
Сообщений: 27
|
|
| 19.06.2017, 07:34 | |
|
Дам не большой совет, если хотите чтобы программа выглядела красиво, перед int main напишите следующую фразу:
using namespace std; и уберите разрешения имен в программе. меньше текста и программа более наглядная.
0
|
|
|
Заблокирован
|
|
| 19.06.2017, 08:04 | |
|
0
|
|
|
Модератор
|
|||||||
| 19.06.2017, 12:05 | |||||||
.
0
|
|||||||
|
Заблокирован
|
||||||||||||||||
| 19.06.2017, 12:11 [ТС] | ||||||||||||||||
|
Препод сказал что то что я показывала. а показывала я это код:
вот что у меня вышло:
Я использую пока один поток: GenerateProcessingIntervals(*array2, size2)
0
|
||||||||||||||||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||||||||
| 19.06.2017, 12:42 | |||||||||
|
Не по теме:
У нас в проекте по код стайлу разрешено использовать using namespace исключительно в файлах реализации и при этом локально в функции. Есть ещё один момент - при использовании нескольких библиотек и неуместном использовании using namespace может произойти коллизия, т.к. имена в разных библиотеках будут пересекаться. И порой это может привести к трудноуловимым ошибкам. Так что пусть всё неявное станет чуть более явным. А std:: я уже пишу на автомате, даже не замечая этого. Добавлено через 2 минуты Тут есть ошибка, связанная с тем, что join блокирует текущий поток до выполнения задачи. Надо область видимости расширить. Сформировать набор потоков в вектор, а потом вызвать для них join.
0
|
|||||||||
|
Заблокирован
|
|||||||||||
| 19.06.2017, 12:49 [ТС] | |||||||||||
|
MrGluck, )) так Вы мне снова то что мне не подходит пишете.
Сказал, что нужно написать отдельно функцию- GenerateProcessingIntervals , я написала, в которой и разбивать диапазон на потоки. я написала. проверяла, правильно моя функция работает. Теперь мне нужно ее использовать. я ее использую
0
|
|||||||||||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
| 19.06.2017, 12:55 | |
|
прочитайте про потоки
https://habrahabr.ru/post/182610/
0
|
|
| 19.06.2017, 12:55 | |
|
Найти сколько раз встречается в данном массиве число 14 и вывести это значения на экран Найти все повторяющиеся значения в массиве и вывести сколько раз каждое из них повторяется
Найти минимум в первом массиве, предварительно исключив элементы, совпадающие с элементами второго массива Как для каждого значения одного массива вывести все значения второго массива? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|