Многопоточная передача сообщений C++ -

Мне поручили изменить синхронную программу на C, чтобы она могла выполняться параллельно. Цель состоит в том, чтобы сделать его как можно более портативным, поскольку это программа с открытым исходным кодом, которую используют многие люди. Из-за этого я подумал, что было бы лучше поместить программу в слой C++, чтобы я мог воспользоваться преимуществами переносимых библиотек Boost. Я уже сделал это, и все работает так, как ожидалось.

Проблема, с которой я сталкиваюсь, заключается в том, чтобы решить, как лучше всего передавать сообщения между потоками. К счастью, архитектура программы состоит из нескольких производителей и одного потребителя. Более того, порядок сообщений не важен. Я читал, что очереди с одним -производителем/одиночным -потребителем (SPSC )выиграют от этой архитектуры. У тех, кто имеет опыт многопоточного -программирования, есть какие-нибудь советы? Я совсем новичок в этом деле. Также будут очень признательны за любые примеры кода, использующие boost для реализации SPSC.

6
задан walrii 4 August 2012 в 01:56
поделиться