4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
|
|||||||||||
1 | |||||||||||
Синхронизации многопоточности16.10.2014, 23:37. Показов 2901. Ответов 32
Метки нет (Все метки)
добрый день, пытаюсь сделать синхронизацию потом на примере producer\consumer, но что-то не выходит, я в consumere сделал ожидания установки сигнала, а в продюсере убрал установку сигнала, но второй потом всеравно выполняется, вот мой код, подскажите может я что нитак понимаю или же где ошибка
чуть подправил код, а что у меня получалось продюсер изменял значения раньше слушателя, но всеравно нефурычит как надо
0
|
16.10.2014, 23:37 | |
Ответы с готовыми решениями:
32
О многопоточности Производительность многопоточности изучение многопоточности Часы многопоточности |
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|
16.10.2014, 23:50 | 2 |
Сообщение было отмечено Avazart как решение
Решение
1. Читайте теорию.
2. Не путайте "код" std и WinApi.
0
|
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
|
|
16.10.2014, 23:55 [ТС] | 3 |
подскажите хоть в чем конкретно ошибка) в каком направлении копать) а то я уже много чего переделал и всеравно некак нефурычит, то перестает вообще выодит что либо, либо выводит только одиновое число, то 0 то 99,дайте подсказку по данному коду
0
|
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
|
|
17.10.2014, 00:05 [ТС] | 5 |
0
|
Модератор
8950 / 6716 / 921
Регистрация: 14.02.2011
Сообщений: 23,708
|
|
17.10.2014, 00:10 | 6 |
грубо говоря, мьютекс блокирует какой то ресурс не дает другому потоку к нему достучатся
возможна такая бяка как взаимная блокировка потоков а семафор это указатель можно ли обращаться к ресурсам, типа светофора красный ехать(читай обращаться) нельзя зеленый можно а может тебе вообще очередь нужна? один пишет другой читает
0
|
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
|
||||||
17.10.2014, 00:19 [ТС] | 7 | |||||
ну мне надо что бы в продюсере менялось значение, а в слушателе оно выводилось и получалось
0 1 2 3 4 .... а у меня самое лучше что вышло это 0 0 0... 44 99 99 99 или 0 0 0 0 5 66 99 99 99 и тд вот коса, кирво по примерам и без понимания семафора пока, набросал кое-что, но как я понял, тут делается не то что мне нужно, а по очереди, второй ждет пока закончится первый и потом запускается, а можно сделать что бы они менялись? какую проверку добавить? и я непонял как сделать что бы один поток отпустил семафор что бы схватил второй, ну пока незакончился цикл вот код
0
|
Модератор
8950 / 6716 / 921
Регистрация: 14.02.2011
Сообщений: 23,708
|
|
17.10.2014, 00:29 | 8 |
зачем
принцип очереди первым пришел первым вышел, в отличии от стека первым пришел последним вышел вот алгоритм первый поток 1 если очередь не полная пишем значение, идем к 1 2 иначе(очередь полная) ждем пока освободится хоть один элемент 3 идем к 1 второй поток 1 если очередь пуста идти к 1 2 иначе считываем значение 3 идем к 1 запись и чтение в очередь можно запихать в критические секции
0
|
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
|
|
17.10.2014, 00:34 [ТС] | 9 |
а можно маленький примерчик какой нибуть? буду очень благодарен)
0
|
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
|
|
17.10.2014, 00:48 [ТС] | 12 |
ну вообще изначально хотелось бы через евент и mutex, то что я посчитал более понятным этот метод, если я правильно понял, то это вы подразумеваете под стандартными средствами) просто я совсем недавно начал это изучать и мне показалось что через них будет легко и просто выполнить поставленную задачу, но как я уже писал в первом посте у меня там неправильно работает или я там от незнания наворотил бог знает что?
0
|
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
|
|
17.10.2014, 00:54 [ТС] | 14 |
я понял, походу от незнания я пишу такую ерунду что наверное даже вникать нехочется, тогда постараюсь сам разобратся, только хоть толкните в нужном направление, что хоть не так в моем коде из первого поста, с чего начать исправлять?
0
|
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
|
|
17.10.2014, 00:58 [ТС] | 16 |
ех... не сильно помогло
0
|
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
|
||||||
17.10.2014, 01:56 [ТС] | 19 | |||||
вот написал, вроде работает как надо, но если не сложно, можно пару советов, ну в плане может что либо по другом стоило сделать или по другому, вот раньше писали про симафоры, щас буду пытатся и в них разобратся, может еще какие будут советы или незнаю способы реализации
0
|
Avazart
|
17.10.2014, 02:02
Синхронизации многопоточности
#20
|
Не по теме: Код как и прежде редкое не-пойми-что
0
|
17.10.2014, 02:02 | |
17.10.2014, 02:02 | |
Помогаю со студенческими работами здесь
20
Сравнение многопоточности С++11 и WinAPI Реализация многопоточности в консоли Подскажите литературу о многопоточности! Управление потоками в многопоточности Теория о многопоточности и многопроцессорности Реализация многопоточности в GUI приложении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |