好吧,我正在开发一个Java在线游戏.我有一个客户端和一个服务器.并且语音系统等待显示如下的新消息:
public void addSpeech(String msg) {
String newMsg = parsel10n(msg);
m_narrator.addSpeech(parsel10n(newMsg));
while (!m_narrator.getCurrentLine().equalsIgnoreCase(newMsg))
;
while (!m_narrator.getAdvancedLine().equalsIgnoreCase(newMsg))
;
}
Run Code Online (Sandbox Code Playgroud)
问题是..由于while循环,应用程序的其余部分停止.在这个循环中,我没有看到任何其他玩家移动或看到聊天.有没有办法我可以运行这个方法而不用循环接触应用程序(客户端)的其余部分?应该涉及线程吗?我希望你能回答我.
是的,应该涉及线程.
如果您只想与主执行线程并行启动任务,则可以执行以下操作:
new Thread(){
public void run(){
addSpeech();
}
}.start();
Run Code Online (Sandbox Code Playgroud)
但是你必须检查你的数据结构是否可以从多个线程中访问.
你可能想在任务结束时做点什么等等.所以我建议你找一个关于java线程和任务队列的教程.
| 归档时间: |
|
| 查看次数: |
209 次 |
| 最近记录: |