C++ mutex - C++ - Обсуждение 2623238 |
|
Обсуждение
Всего сообщений: 76
|
||||
Имя | Дата | Сообщение | ||
Читать обсуждение полностью: C++ mutex |
||||
Wannani | 20.04.2020 20:53 |
https://www.cyberforum.ru/post14452842.html
Есть небольшое задание, буквально пару строк. Можете...
|
||
oleg-m1973 | 20.04.2020 21:16 |
https://www.cyberforum.ru/post14452946.html
struct histogram
{
histogram(int count) : data(count)...
|
||
Wannani | 20.04.2020 21:32 |
https://www.cyberforum.ru/post14453021.html
Большое спасибо! Работает. Так же круто что есть такие...
|
||
oleg-m1973 | 20.04.2020 21:37 |
https://www.cyberforum.ru/post14453048.html
Тоже не понял, но возможно что-то типа
struct histogram...
|
||
Wannani | 20.04.2020 21:41 |
https://www.cyberforum.ru/post14453058.html
Это mutex per M buckets?
А какие тогда будут отличия от...
|
||
oleg-m1973 | 20.04.2020 21:43 |
https://www.cyberforum.ru/post14453066.html
Потоки не будут друг друга блокировать, когда пишут разные...
|
||
Wannani | 20.04.2020 21:45 |
https://www.cyberforum.ru/post14453076.html
Очень полезно!!! Не могли бы подсказать как это будет...
|
||
oleg-m1973 | 20.04.2020 21:49 |
https://www.cyberforum.ru/post14453092.html
Ну, элементы массива не зависят друг от друга. Поэтому,...
|
||
Wannani | 20.04.2020 21:53 |
https://www.cyberforum.ru/post14453104.html
А как правильно в коде расставить? когда в single mutex ...
|
||
oleg-m1973 | 20.04.2020 21:54 |
https://www.cyberforum.ru/post14453107.html
В идеале, хорошо, если бы был свой мьютекс на каждый...
|
||
Wannani | 20.04.2020 21:55 |
https://www.cyberforum.ru/post14453118.html
так это что получается. в mutex for each bucket надо в коде...
|
||
oleg-m1973 | 20.04.2020 21:57 |
https://www.cyberforum.ru/post14453122.html
Я ж тебе вроде показал - std::mutex m_mx;
Не уверен,...
|
||
Wannani | 20.04.2020 21:58 |
https://www.cyberforum.ru/post14453126.html
просто в задании 2 разных пункта
mutex for each bucket
...
|
||
oleg-m1973 | 20.04.2020 22:01 |
https://www.cyberforum.ru/post14453134.html
Что такое bucket? Один элемент, int?
|
||
Wannani | 20.04.2020 22:02 |
https://www.cyberforum.ru/post14453143.html
думаю да. тип mutex для каждого элемента
|
||
oleg-m1973 | 20.04.2020 22:09 |
https://www.cyberforum.ru/post14453171.html
Тогда
struct histogram
{
histogram(int count)
:...
|
||
Wannani | 20.04.2020 22:15 |
https://www.cyberforum.ru/post14453197.html
Спасибо большое. Сейчас изучу. Насколько я понял это все...
|
||
oleg-m1973 | 20.04.2020 22:18 |
https://www.cyberforum.ru/post14453210.html
Нет, не static.
Только histogram
|
||
Wannani | 20.04.2020 22:36 |
https://www.cyberforum.ru/post14453219.html
Сложно.. Учитель ответил что для static меняйте только...
|
||
oleg-m1973 | 20.04.2020 22:40 |
https://www.cyberforum.ru/post14453278.html
Я не вижу смысла здесь менять worker. Статический можно...
|
||
Wannani | 20.04.2020 22:55 |
https://www.cyberforum.ru/post14453284.html
Вот что еще ответил
Можно удалить repeats_to_do параметр,...
|
||
oleg-m1973 | 20.04.2020 22:57 |
https://www.cyberforum.ru/post14453317.html
У них у всех должно быть одинаковое количество итерации -...
|
||
Wannani | 20.04.2020 23:31 |
https://www.cyberforum.ru/post14453396.html
Спасибо большое! Осталось только разобраться почему учитель...
|
||
oleg-m1973 | 20.04.2020 23:35 |
https://www.cyberforum.ru/post14453438.html
Нет, не рисует. Это надо записать значения в файл и потом...
|
||
Wannani | 20.04.2020 23:43 |
https://www.cyberforum.ru/post14453454.html
Тогда N это у нас значения в коде: int max = 10;
M это...
|
||
oleg-m1973 | 20.04.2020 23:45 |
https://www.cyberforum.ru/post14453460.html
N - это int repeats_to_do = 100000;
|
||
Wannani | 21.04.2020 12:14 |
https://www.cyberforum.ru/post14454637.html
Вот такой ответ получил. Пример dynamic и static work...
|
||
Wannani | 21.04.2020 12:21 |
https://www.cyberforum.ru/post14454670.html
А вот пример для atomic dynamic. Как раз как первое задание.
|
||
oleg-m1973 | 21.04.2020 12:31 |
https://www.cyberforum.ru/post14454712.html
Здесь несколько потоков обрабатывают один массив. При этом...
|
||
Wannani | 21.04.2020 12:33 |
https://www.cyberforum.ru/post14454744.html
Извините что столь много вопросов. Немного отклонение от...
|
||
oleg-m1973 | 21.04.2020 12:36 |
https://www.cyberforum.ru/post14454752.html
q.empty() надо тоже под мьютексом проверять. Иначе пока ты...
|
||
Wannani | 21.04.2020 12:41 |
https://www.cyberforum.ru/post14454778.html
Надо вставить только элементы lock unlock и /*nope*/ в...
|
||
oleg-m1973 | 21.04.2020 12:43 |
https://www.cyberforum.ru/post14454786.html
В смысле? Cделай весь if между lock и unlock
|
||
Wannani | 21.04.2020 12:48 |
https://www.cyberforum.ru/post14454809.html
Точно! Работает!! Спасибо! А вот тут как? Я правильно...
|
||
oleg-m1973 | 21.04.2020 12:54 |
https://www.cyberforum.ru/post14454831.html
Вроде да. Только флаги acquire/release я обычно наоборот...
|
||
Wannani | 21.04.2020 12:55 |
https://www.cyberforum.ru/post14454848.html
Мне очень не ловко вас беспокоить, но это сейчас очень...
|
||
oleg-m1973 | 21.04.2020 12:59 |
https://www.cyberforum.ru/post14454866.html
Здесь надо полностью блокировать доступ к массиву, а не...
|
||
Wannani | 21.04.2020 13:00 |
https://www.cyberforum.ru/post14454869.html
Понял. Учитель указал используйте deque вместо vector для...
|
||
oleg-m1973 | 21.04.2020 13:01 |
https://www.cyberforum.ru/post14454875.html
Просто замени vector на deque и всё
|
||
Wannani | 21.04.2020 13:09 |
https://www.cyberforum.ru/post14454886.html
struct worker
{
void operator()(int idx, mutex& m,...
|
||
oleg-m1973 | 21.04.2020 13:16 |
https://www.cyberforum.ru/post14454918.html
void operator()(int idx, mutex& m, deque<int>& results)
...
|
||
Wannani | 21.04.2020 13:46 |
https://www.cyberforum.ru/post14454924.html
Все работает!! Большое спасибо
Добавлено через 22 минуты...
|
||
oleg-m1973 | 21.04.2020 13:48 |
https://www.cyberforum.ru/post14455057.html
Там совсем другое - блокируется/выделяется текущий индекс....
|
||
Wannani | 21.04.2020 14:01 |
https://www.cyberforum.ru/post14455120.html
Возможно это для целей обучения
Main и worker классы...
|
||
oleg-m1973 | 21.04.2020 14:07 |
https://www.cyberforum.ru/post14455142.html
struct worker
{
worker(std::atomic<int>...
|
||
Wannani | 21.04.2020 14:14 |
https://www.cyberforum.ru/post14455175.html
первое это worker
второе это main
а вывод как лучше...
|
||
oleg-m1973 | 21.04.2020 14:17 |
https://www.cyberforum.ru/post14455188.html
А зачем ты из main всё убрал?
|
||
Wannani | 21.04.2020 14:23 |
https://www.cyberforum.ru/post14455226.html
Ой. Не то скопировал. Вот
int main()
{
int...
|
||
oleg-m1973 | 21.04.2020 14:25 |
https://www.cyberforum.ru/post14455239.html
Тебе же динамическая нужна
for (int t = 0; t <...
|
||
Wannani | 21.04.2020 14:28 |
https://www.cyberforum.ru/post14455247.html
я так попробовал, но запускается и грузит проц на 100% и...
|
||
oleg-m1973 | 21.04.2020 14:30 |
https://www.cyberforum.ru/post14455252.html
void operator()()
{
generator gen(cfg);
...
|
||
Wannani | 21.04.2020 14:34 |
https://www.cyberforum.ru/post14455271.html
Это в генератор или куда бы притулить? куда не попробую,...
|
||
oleg-m1973 | 21.04.2020 14:40 |
https://www.cyberforum.ru/post14455295.html
struct worker.
Просто поправь там условие цикла
|
||
Wannani | 21.04.2020 21:53 |
https://www.cyberforum.ru/post14456060.html
Только что попробовал по вашему примеру сделать
single...
|
||
oleg-m1973 | 21.04.2020 22:01 |
https://www.cyberforum.ru/post14457105.html
struct worker
{
worker(std::mutex &mx, int&...
|
||
Wannani | 21.04.2020 22:05 |
https://www.cyberforum.ru/post14457121.html
Ничего себе. Даже и не думал о таком решении. А то что в...
|
||
oleg-m1973 | 21.04.2020 22:06 |
https://www.cyberforum.ru/post14457125.html
Да. Это разные мьютексы
|
||
Wannani | 21.04.2020 22:09 |
https://www.cyberforum.ru/post14457139.html
Спасибо! Сегодня сказал учителю по вашей рекомендации что в...
|
||
oleg-m1973 | 21.04.2020 22:13 |
https://www.cyberforum.ru/post14457147.html
Почему?
Добавлено через 1 минуту
Покажи ему...
|
||
Wannani | 21.04.2020 22:18 |
https://www.cyberforum.ru/post14457164.html
Да все верно. Он просто не любит когда его поправляют
А...
|
||
oleg-m1973 | 21.04.2020 22:20 |
Решение https://www.cyberforum.ru/post14457172.html
for (int t = 0; t < num_threads; ++t)...
|
||
Wannani | 21.04.2020 22:22 |
https://www.cyberforum.ru/post14457177.html
А вообще клаасное чувство указать на ошибку учителю и как...
|
||
oleg-m1973 | 21.04.2020 22:26 |
https://www.cyberforum.ru/post14457194.html
Да, оставь
|
||
Wannani | 21.04.2020 22:29 |
https://www.cyberforum.ru/post14457203.html
Это последний вопрос. Уже точно :)
mutex per M buckets...
|
||
oleg-m1973 | 21.04.2020 22:40 |
https://www.cyberforum.ru/post14457238.html
А что ты здесь пытаешься сделать?
|
||
Wannani | 21.04.2020 22:42 |
https://www.cyberforum.ru/post14457243.html
mutex per M buckets dynamic надо
|
||
oleg-m1973 | 21.04.2020 22:44 |
https://www.cyberforum.ru/post14457249.html
А это как?
|
||
Wannani | 21.04.2020 22:46 |
https://www.cyberforum.ru/post14457254.html
Вот так вы подсказали
struct histogram
{
static...
|
||
oleg-m1973 | 21.04.2020 22:51 |
https://www.cyberforum.ru/post14457265.html
Dynamic - это только класса worker касается, там вроде уже...
|
||
Wannani | 21.04.2020 22:52 |
https://www.cyberforum.ru/post14457275.html
#include <thread>
#include <vector>
#include <iostream>...
|
||
oleg-m1973 | 21.04.2020 22:54 |
https://www.cyberforum.ru/post14457277.html
Цикл в main поменяй
|
||
Wannani | 21.04.2020 22:59 |
https://www.cyberforum.ru/post14457283.html
получается в mutex for each bucket такой же цикл в main
...
|
||
oleg-m1973 | 21.04.2020 23:01 |
https://www.cyberforum.ru/post14457288.html
Нет, не собирается
Лишняя запятая после...
|
||
Wannani | 21.04.2020 23:03 |
https://www.cyberforum.ru/post14457293.html
worker(std::mutex& mx, int& repeats_to_do, histogram& h,...
|
||
oleg-m1973 | 21.04.2020 23:04 |
https://www.cyberforum.ru/post14457296.html
В смысле? Это вроде только один вариант
|
||
Wannani | 22.04.2020 01:01 |
https://www.cyberforum.ru/post14457306.html
Нашел ошибки и исправил! Еще раз большое спасибо!!
|
||
|
||||
Similar |
mutex Проблемы с <mutex> многопоточный map, mutex Mutex destroyed while busy |
|||
Ads |
|
|||
MoreAnswers |
Подключение библиотеки mutex Можно ли обойтись без mutex? Delete & и thread mutex Один mutex на несколько функций Ошибка при подключение <mutex> и <thread> Как сделать mutex в этом случае? |
|||