【发布时间】:2011-05-02 22:03:04
【问题描述】:
在传统的阻塞线程服务器中,我会做这样的事情
class ServerSideThread {
ObjectInputStream in;
ObjectOutputStream out;
Engine engine;
public ServerSideThread(Socket socket, Engine engine) {
in = new ObjectInputStream(socket.getInputStream());
out = new ObjectOutputStream(socket.getOutputStream());
this.engine = engine;
}
public void sendMessage(Message m) {
out.writeObject(m);
}
public void run() {
while(true) {
Message m = (Message)in.readObject();
engine.queueMessage(m,this); // give the engine a message with this as a callback
}
}
}
现在,可以预期该对象会非常大。在我的 nio 循环中,我不能简单地等待对象通过,我的所有其他连接(工作量小得多)都将等待我。
我怎样才能在一个连接告诉我的 nio 通道它已经准备好之前,才知道它已经拥有整个对象?
【问题讨论】:
标签: java serialization nio