LINUX.ORG.RU

Передача сообщений между потоками ?


0

0

Как в Linux реализовать следующую модель ?

Есть N потоков ,которые выполняют следующую работу: поток ждет сообщения от предыдущего потока , обрабатывает его и передает следующему потоку для обработки. На псевдокоде это можно написать так

TreadN() while() { wait( queueN-1 ) mess=get( queueN-1 ) process(mess) send(mess,queueN+1) post( TreadN+1)

}

Незнаю как это реализовать, все сигналы расписаны, есть только SIGUSR1, SIGUSR2


pthread_cond_wait/pthread_cond_signal

k_andy ★★★
()

В glib (не glibc!) уже есть готовое решение: GAsyncQueue, но если нельзя использовать glib по какой-то причине, то pthread_mutex_t + pthread_cond_t, и будет желаемый результат.

linuxfan
()

Пользуй Erlang... тогда это еще и кросплатформенно будет... а уж писать там такие вещи одно удовольствие...

Cy6erBr4in ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.