Название: Объясните пример по QSemaphore Отправлено: like-nix от Март 27, 2011, 23:32 Код: #include <QtCore> Зачем тут у freeBytes в конструкторе BufferSize? по моему достаточно 1, мы же 1 ресурс захватываем и освобождаем. Я попробовал с 1 результат тот же. что и с BufferSize. Что по моему логично. Но зачем тогда freeBytes(BufferSize)? Название: Re: Объясните пример по QSemaphore Отправлено: like-nix от Март 28, 2011, 00:37 Если я правильно понял это затем чтобы продюсер смог обогнать потребителя, и этот обгон был учтен. А если мы делаем 1 в конструкторе freeBytes, то в этом случае продюсер обязан обязательно ждать потребителя.
Название: Re: Объясните пример по QSemaphore Отправлено: Fat-Zer от Март 28, 2011, 00:59 не совсем... это классика.
один семофор блокирует потребителей, если буффер пуст, а другой производителей, если он полон. Название: Re: Объясните пример по QSemaphore Отправлено: like-nix от Март 28, 2011, 01:09 Помое му я так и написал только производитель может опредить потребителя а потребитель производителя нет
Название: Re: Объясните пример по QSemaphore Отправлено: Igors от Март 28, 2011, 11:29 Зачем тут у freeBytes в конструкторе BufferSize? по моему достаточно 1, мы же 1 ресурс захватываем и освобождаем. Я попробовал с 1 результат тот же. что и с BufferSize. Что по моему логично. Но зачем тогда freeBytes(BufferSize)? Да, 1 достаточна, но если у Producer'а есть "фронт работ", зачем он должен каждый раз ждать пока Consumer распечатает? Красивый примерчик. |