Mam za zadanie zmodyfikować synchroniczny program C, aby mógł działać równolegle. Celem jest zapewnienie maksymalnej mobilności, ponieważ jest to program open source, z którego korzysta wiele osób. Z tego powodu pomyślałem, że najlepiej będzie zawinąć program w warstwie C++, aby móc korzystać z przenośnych bibliotek wspomagających. Zrobiłem to już i wszystko wydaje się działać zgodnie z oczekiwaniami.Wielowątkowe przesyłanie wiadomości w języku C++
Problem, który mam, polega na wyborze najlepszego sposobu przekazywania wiadomości między wątkami. Na szczęście architektura programu jest wieloproducentem i pojedynczym konsumentem. Co więcej, kolejność wiadomości nie jest ważna. Czytałem, że koleje jednoprodukcyjne/jedno-konsumenckie (SPSC) skorzystałyby z tej architektury. Ci doświadczeni w programowaniu wielowątkowym mają jakąkolwiek radę? Jestem całkiem nowy w tych rzeczach. Również wszelkie przykłady kodu wykorzystujące doładowanie w celu wdrożenia SPSC będą bardzo mile widziane.
Zobacz zaakceptowaną odpowiedź na http://stackoverflow.com/questions/8918401/does-a-multiple-producer-single-consumer-lock-free-queue-exist-for-c – walrii