我从实现了Runnable接口的JeroMQ检查了ZMQueue
类的源代码,如下所示:
private final Socket inSocket;
private final Socket outSocket;
public ZMQQueue( Context context, Socket inSocket, Socket outSocket ){
this.inSocket = inSocket;
this.outSocket = outSocket;
}
@Override
public void run(){
zmq.ZMQ.proxy( inSocket.base(), outSocket.base(), null );
}
如您所见,在
run()
中只有一个语句,即调用ZMQ.proxy()
-这里发生了什么?在构造函数中,它以
Context
实例为参数,对此不执行任何操作。谁能解释一下该类的实现目的?
最佳答案
它是在单独的线程中工作的简单代理,它从一个套接字获取一个消息,然后将其放入另一个套接字,ZMQueue类只是jeromq / jzmq库中的一种高级api。
您也可以使用不带ZMQueue类(doc)的代理。
或者,您可以通过所需的任何处理自己实现一些更复杂的事情。