我目前正在开发我的游戏网络,有一个客户端和服务器正在运行。服务器当前在另一个Thread
中无限循环,但我的客户端和游戏代码在同一个线程中。当客户端处理来自服务器的数据时,我遇到了问题,游戏会挂起直到客户端完成处理新数据包。
我尝试通过使客户端类实现Runnable
并在单独的线程中运行来解决这个问题。我遇到了一些其他错误,不知道是否是这个问题导致的。
我有run
方法和sendPacket
方法:
public void run() {
// empty
}
public void sendPacket() {
somePacketSendingCode();
}
在run
方法中没有任何代码,因为我只使用sendPacket
方法。当接收到数据包时,侦听器线程会调用sendPacket
。
如果我在run
方法中没有任何代码,那么是不是表示客户端Thread
在启动后停止执行?如果是这样的话,那么sendPacket
方法不就什么也不做了吗?
code
void run() { sendPacket(); }code
,那么sendPacket只会被执行一次。 - codejitsu