2016-06-09 4 views
-1

См., Я знаю, существуют различные способы связи между потоками, но мой вопрос специфичен для LINX. Ответьте, пожалуйста.Возможно ли связываться через LINX Связь между потоками?

Заранее спасибо

+1

https://www.google.com/search?q=LINX –

+0

Я сделал google, но не смог найти точный ответ – user2071089

+0

По крайней мере упомянуть *, который * LINX вы имеете в виду ; TLA - U11E. Я подозреваю, что вы имеете в виду [этот] (http://linx.sourceforge.net/linxdoc/doc/). Если это так, каждому потоку будет нужна их собственная [конечная точка] (http://linx.sourceforge.net/linxdoc/doc/html/linx.7.html), так как вы не можете использовать одну и ту же конечную точку одновременно из разных потоков. –

ответ

0

нить одного и тот же персонал процесс доли кучи, синхронизированная с помощью блокировки резьбы, семафор и состояния переменной.

Кроме того, подход связи от межпроцессного взаимодействия (IPC, например, ТРУБ/FIFO/MessageQueue/SharedMemory/сигнал/гнездо) работает для нитей связи, тоже. взять FIFO (например, пренебрежение ошибка проверки кода):

char buf[110]; 
char *FIFO = "/tmp/my_fifo"; 
mkfifo(FIFO, O_CREAT); 
int fd = open(FIFO, O_RDONLY, 0); 
int nread = read(fd, buf, 100); 
+0

Я сделал это. Резьба1() {Открывает конечную точку} // хранить его в глобальной переменной thread2() {открывает свою собственную конечную точку Посылает сообщение для endpoint1} // Я больше получаю ошибку Нет такого файла или каталога Я использую LINX_SEND системный вызов – user2071089

+0

@ user2071089 "получение ошибки Нет такого файла или каталога", вы имеете в виду использование FIFO? Это должно быть разрешено вызовом 'mkfifo', чтобы сделать файл fifo первым, прежде чем открывать его. – lulyon

+0

@ user2071089 не стесняйтесь проверить обновленный ответ :) – lulyon

0

Ну как за @lulyon, этот метод также может быть реализован. Ну, для LINX, возможно, interthread. LINX_SEND (конечная точка, сигнал, SPID dest). Мой плохой я отправил dest Endpoint вместо SPID

Смежные вопросы