|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.12.2012, 16:07 | #1 |
Пользователь
Регистрация: 23.11.2011
Сообщений: 34
|
Синхронизация потоков
Нужно написать программу, которая запускает 2 процесса, один "читатель", а другой "писатель". В процессе "писатель" должно быть 2 потока писателей, которые добавляют записи в очередь. Процесс "читатель", удаляет записи из очереди, и в нем так же работают 2 потока. Для обмена данными между процессами нужно использовать проецируемые в память файлы. Синхронизировать потоки нужно с помощью событий, создавать с помощью API функций.
Я вроде все сделал, но когда запускаю "potoki_5.exe", запускаются эти 2 процесса, но работает только писатель, причем по несколько раз может добавить одну и ту же запись. Подскажите плиз, где я мог ошибиться )) Код potoki_5 PHP код:
|
16.12.2012, 16:08 | #2 |
Пользователь
Регистрация: 23.11.2011
Сообщений: 34
|
код reader
PHP код:
PHP код:
|
16.12.2012, 18:44 | #3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Тут проблема в том, что сразу 4 потока ждут события одновременно и waitforsingleobject могут проскочить несколько потоков, так как при создании события было указано ручное управление сбросом/созданием. В главной программе меняй создание события на автоматический сброс
Код:
Далее в других процессах удаляй все ручные сбросы ResetEvent, а вместо создания события Код:
Код:
И код надо другим тегом оформлять (кнопка с решёткой #) |
17.12.2012, 00:37 | #4 |
Пользователь
Регистрация: 23.11.2011
Сообщений: 34
|
eoln, Спасибо! Все переделал, исходник ридера я не тот выложил )) Но все равно не работает, у меня цикл стоит бесконечный, а он только выводит пару записей и все.
Вот исправленый код: Код:
Код:
|
17.12.2012, 00:37 | #5 |
Пользователь
Регистрация: 23.11.2011
Сообщений: 34
|
Код:
|
17.12.2012, 01:57 | #6 |
Пользователь
Регистрация: 23.11.2011
Сообщений: 34
|
Вроде все сделал, все исправил!! ))
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Синхронизация потоков | _Bers | Общие вопросы C/C++ | 5 | 23.12.2011 22:57 |
Синхронизация потоков | kardinal94 | Общие вопросы Delphi | 5 | 29.11.2010 21:13 |
Синхронизация потоков | alenka_ej | Помощь студентам | 0 | 03.06.2010 22:20 |
синхронизация потоков | m_kostik | Win Api | 0 | 26.03.2010 23:56 |