Быстро межраспараллельте механизм связи

Мне нужен быстрый механизм связи межпотока для передачи работы (void*) от задач TBB до нескольких рабочих, которые находятся в выполняющих/блокирующих операциях. В настоящее время я изучаю использование pipe()+libevent. Существует ли более быстрая и более изящная альтернатива для использования с Intel Threading Building Blocks?

7
задан fduff 4 February 2015 в 13:22
поделиться

2 ответа

Вы должны быть в состоянии просто использовать стандартную память с мьютексными блокировками, поскольку потоки используют одно и то же пространство памяти. Решение pipe()+libevent кажется более подходящим для межпроцессного взаимодействия, когда каждый процесс имеет свое пространство памяти.

7
ответ дан 7 December 2019 в 01:19
поделиться

Посмотрите Implementing a Thread-Safe Queue using Condition Variables. В нем используется очередь STL, мьютекс и условная переменная для облегчения межпотокового взаимодействия. (Я не знаю, применимо ли это к Intel Threading Building Blocks, но поскольку TBB не упоминается в вопросе/заголовке, я предполагаю, что другие попадут сюда, как и я - в поисках механизма межпоточного взаимодействия, который не является IPC. И эта статья может помочь им, как помогла мне.)

.
2
ответ дан 7 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: