Предоставляет ли java zmq poller аналогичный способ мониторинга файлового дескриптора, как c ++ zmq poller - PullRequest
0 голосов
/ 30 января 2019

В коде 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, чтобы сделать вышеупомянутые подобные вещи?Помимо мониторинга сокетов, можем ли мы сделать что-то вроде описанного выше дескриптора файла событий?Есть ли пример?

...