В коде zmq cpp, poller также может отслеживать fd, см. Ниже
mFd is created with eventfd as mFd(eventfd(0, 0))
zmq::pollitem_t poll[2] = {{mSocket, 0, ZMQ_POLLIN, 0},
{NULL, mFd, ZMQ_POLLIN, 0} }
while (!abort) {
zmq::poll(poll, 2, -1);
if (poll[0].revents & ZMQ_POLLIN) {
socket handling;
}
//event fd has activity
if (poll[1].revents & ZMQ_POLLIN) {
process other things
}
Мы можем использовать приведенный ниже код, чтобы активировать poller и выполнять другие действия в качестве сигнала, что полезно, когда мы хотим разбудитьUpler Poller КАК МОЖНО СКОРЕЕ делать, и на сокетах нет активности.Событие fd работает как конвейер, одна сторона записывает что-то, чтобы вызвать событие чтения для опрашивающего устройства и, следовательно, активировать опрашивающее устройство
int x = 1;
write(mFd, &x, sizeof(x));
Так есть ли способ для java zmq, чтобы сделать вышеупомянутые подобные вещи?Помимо мониторинга сокетов, можем ли мы сделать что-то вроде описанного выше дескриптора файла событий?Есть ли пример?