在使用Java和Servlet时正确使用线程

时间:2018-03-03 22:57:19

标签: java multithreading war

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

下面的代码执行线程。

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

 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 个答案:

答案 0 :(得分:0)

您必须毫不拖延地回复HTTP请求。线程不是解决方案。

您可以使用以下其中一项:

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