有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

多线程在使用Java和servlet时正确使用线程

我在整个servlet领域都是新手,我正在尝试实现一种方法,该方法将等待用户给定的时间变量(例如1分钟),然后开始倒计时,直到给定的时间达到0。我认为我能做到这一点的唯一方法是使用线程。 我将Java项目导出为war,部署它,但当我导入1分钟时,网页不会打印任何内容,直到我重新加载它,如果我使用浏览器返回,线程仍在运行

下面的代码执行线程

你能建议我是否应该使用非同步线程(也许可以解释一下与普通线程的区别),或者我可以继续使用线程

 if(minutes<=0) {
            out.println("<center><h3>Time cannot be negative</h3></center>");
     }
     else 
     {
         new Thread(new Runnable(){
            public void run() {
                try {
                    out.println("<center><h3>Minutes :"+(minutes)+"</h3></center>");
                    Thread.sleep(minutes*60000);
                    out.println("<p align=\"CENTER\"> <a href=\"timer\">Return</a><br>");
            } catch (InterruptedException e) {
                out.println("Interruption Found");

                }
            }
         }).start();
     }
   }

共 (1) 个答案

  1. # 1 楼答案

    您必须毫不延迟地响应HTTP请求。线程并不能解决这个问题

    您可以使用以下选项之一:

    • 使用一些Ajax(客户端控制)
    • WebSocket(服务器端控制)