Так что у меня есть эта проблема, которая является классической проблемой писателя / читателя только с изюминкой.
Допустим, например, что у вас есть один писатель и несколько читателей. Автор помещает несколько сообщений в общую структуру данных (сообщение содержит два небольших сообщения), поэтому структура данных будет выглядеть примерно так: [m11 m12 m21 m22 m31 m32 ..],
где первый номер - номер сообщения, а второй номер - номер детали. Как я могу заставить читателя получать одно из сообщений, не прерывая его другому читателю?
Например:
Если читатель 1 берет m11, я хочу, чтобы общий ресурс был заблокирован, пока он также не прочитает m12.
Решение должно быть сделано только с семафорами или замками, и читатель может читать только одно сообщение за раз.