java - Java同时做两件事

标签 java

嗯,我正在用 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))
      ;
 } 

问题是.. 由于 while 循环,应用程序的其余部分停止了。在此循环中,我没有看到任何其他玩家移动或看到聊天。有没有一种方法可以在不使用循环接触应用程序(客户端)的其余部分的情况下运行此方法?应该涉及线程吗?我希望你能回答我。

最佳答案

是的,应该涉及线程。

如果您只想在主执行线程的同时启动一个任务,您可以这样做:

new Thread(){
   public void run(){
        addSpeech();
   }
}.start();

但是您必须检查您的数据结构是否可以从多个线程访问。

而且您可能想在任务结束时做一些事情,等等。所以我建议您查找有关 Java 线程和任务队列的教程。

关于java - Java同时做两件事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12355542/

相关文章:

java - 当同一库的多个版本被声明为依赖项时,Maven 项目中会加载哪个类?

java - 从Excel中读取数据并写入列表

java - Java获取Tomcat版本号的方法

java - NumberFormat 数字后显示的文本/货币

java - JUnit 测试构造函数测试

java - 如何在Spring中自定义SpEL解析器?

java - 自定义 Junit 运行程序,运行之前和之后

java - Apache Commons ZipArchiveOutputStream 在添加带有非 ASCII 字符的文件名时中断

java - 尝试用 Java 获取 XML 节点

java - 无法运行 'Hello World"Spring MVC 代码