net-socket.io 中 Thread.sleep() 的目的是什么?
What is the purpose of Thread.sleep() in net-socket.io?
我目前正在尝试学习 netty-socket.io 使用他们的
demo project。我一直看到 Thread.sleep(Integer.MAX_VALUE);
。有人可以告诉我为什么这很重要吗?
补充: 澄清一下,我不是在问 Thread.sleep() 函数做什么,显然它会暂停特定线程上的执行。我在这个示例套接字服务器中询问它的相关性。
package com.corundumstudio.socketio.demo;
import com.corundumstudio.socketio.listener.*;
import com.corundumstudio.socketio.*;
public class NamespaceChatLauncher {
public static void main(String[] args) throws InterruptedException {
Configuration config = new Configuration();
config.setHostname("localhost");
config.setPort(9092);
final SocketIOServer server = new SocketIOServer(config);
final SocketIONamespace chat1namespace = server.addNamespace("/chat1");
chat1namespace.addEventListener("message", ChatObject.class, new DataListener<ChatObject>() {
@Override
public void onData(SocketIOClient client, ChatObject data, AckRequest ackRequest) {
// broadcast messages to all clients
chat1namespace.getBroadcastOperations().sendEvent("message", data);
}
});
final SocketIONamespace chat2namespace = server.addNamespace("/chat2");
chat2namespace.addEventListener("message", ChatObject.class, new DataListener<ChatObject>() {
@Override
public void onData(SocketIOClient client, ChatObject data, AckRequest ackRequest) {
// broadcast messages to all clients
chat2namespace.getBroadcastOperations().sendEvent("message", data);
}
});
server.start();
//Thread.sleep(Integer.MAX_VALUE);
Thread.sleep(4000);
server.stop();
}
}
所以我发现这与服务器根本没有任何关系。 Thread.sleep(Integer.MAX_VALUE);
只是暂停了程序的执行。为了使这个答案直观,我将在发布的代码块中将 Thread.sleep(Integer.MAX_VALUE)
更改为 Thread.sleep(4000)
。
即,这将启动服务器,运行 它持续 4 秒,然后停止服务器。
这似乎只是为了完成它的目的;这是启动和停止服务器,因为这是从演示项目中获取的。
我目前正在尝试学习 netty-socket.io 使用他们的
demo project。我一直看到 Thread.sleep(Integer.MAX_VALUE);
。有人可以告诉我为什么这很重要吗?
补充: 澄清一下,我不是在问 Thread.sleep() 函数做什么,显然它会暂停特定线程上的执行。我在这个示例套接字服务器中询问它的相关性。
package com.corundumstudio.socketio.demo;
import com.corundumstudio.socketio.listener.*;
import com.corundumstudio.socketio.*;
public class NamespaceChatLauncher {
public static void main(String[] args) throws InterruptedException {
Configuration config = new Configuration();
config.setHostname("localhost");
config.setPort(9092);
final SocketIOServer server = new SocketIOServer(config);
final SocketIONamespace chat1namespace = server.addNamespace("/chat1");
chat1namespace.addEventListener("message", ChatObject.class, new DataListener<ChatObject>() {
@Override
public void onData(SocketIOClient client, ChatObject data, AckRequest ackRequest) {
// broadcast messages to all clients
chat1namespace.getBroadcastOperations().sendEvent("message", data);
}
});
final SocketIONamespace chat2namespace = server.addNamespace("/chat2");
chat2namespace.addEventListener("message", ChatObject.class, new DataListener<ChatObject>() {
@Override
public void onData(SocketIOClient client, ChatObject data, AckRequest ackRequest) {
// broadcast messages to all clients
chat2namespace.getBroadcastOperations().sendEvent("message", data);
}
});
server.start();
//Thread.sleep(Integer.MAX_VALUE);
Thread.sleep(4000);
server.stop();
}
}
所以我发现这与服务器根本没有任何关系。 Thread.sleep(Integer.MAX_VALUE);
只是暂停了程序的执行。为了使这个答案直观,我将在发布的代码块中将 Thread.sleep(Integer.MAX_VALUE)
更改为 Thread.sleep(4000)
。
即,这将启动服务器,运行 它持续 4 秒,然后停止服务器。
这似乎只是为了完成它的目的;这是启动和停止服务器,因为这是从演示项目中获取的。