Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 如何在SpringMVC项目中使线程暂停?_Multithreading_Spring_Web_Deprecated - Fatal编程技术网

Multithreading 如何在SpringMVC项目中使线程暂停?

Multithreading 如何在SpringMVC项目中使线程暂停?,multithreading,spring,web,deprecated,Multithreading,Spring,Web,Deprecated,我正在使用SpringMVC项目中的一个线程来做一些后台工作 我所做的是 我编写了一个扩展线程的类。我添加了init()方法来启动这个类。 下面是完整的ThreadTest.java package org.owls.thread.vo; public class ThreadTest extends Thread { public void init(){ this.start(); } public void pause(){ t

我正在使用SpringMVC项目中的一个线程来做一些后台工作

我所做的是

  • 我编写了一个扩展线程的类。我添加了init()方法来启动这个类。 下面是完整的ThreadTest.java

    package org.owls.thread.vo;
    
    public class ThreadTest extends Thread {
    
        public void init(){
            this.start();
        }
    
        public void pause(){
            this.interrupt();
        }
    
        @Override
        public void run() {
            for(int i = 0; i < 100; i++){
                try{
                    Thread.sleep(3000);
                    System.out.println("Thread is running : " + i);
                } catch(Exception e){e.printStackTrace();}
            }
        }
    };
    
    package org.owls.thread.vo;
    公共类ThreadTest扩展了线程{
    公共void init(){
    这个。start();
    }
    公共空间暂停(){
    这个。中断();
    }
    @凌驾
    公开募捐{
    对于(int i=0;i<100;i++){
    试一试{
    睡眠(3000);
    System.out.println(“线程正在运行:+i”);
    }catch(异常e){e.printStackTrace();}
    }
    }
    };
    
  • 编辑root context.xml意图在服务器启动时尽快启动此线程

  • 现在是问题所在。我想在我的home.jsp中创建一个切换按钮(暂停/恢复),当我单击该按钮时,它就会工作。但我不知道如何访问已经注册并运行的线程


  • 请告诉我怎么控制线程

    如果我想暂停(而不是停止),代码应该如下所示

    thread.suspend();
    
    thread.resume();
    
    想从暂停的地方继续,如下所示

    thread.suspend();
    
    thread.resume();
    
    尽管这些方法都不推荐使用

    (如果有人知道这些设备的更换,请回复)

    如果您不想在spring项目中显示黄色警告

    只需在该方法上添加注释,即可删除警告

    注释是
    @SuppressWarnings(“已弃用”)

    =========================================================

    从这里开始,根据我的经验提供更多的解决方案

    要使自动执行Spring mvc线程

    我做了以下步骤

  • 制作一个扩展Thread类的简单类

  • 在该类中,创建一个方法。这将由

  • 配置文件。用这种方法。我编写了类似“
    this.start();
    ”的代码

  • 让Spring知道我们有一个应该独立运行的线程类
  • 通过网络活动。为此,我们必须编辑root-context.xml

    像这样添加一个bean

    <bean id="threadTest" class="org.owls.thread.vo.ThreadTest" init-method="init"/>
    
    
    
    init是用户在步骤2中生成的方法名

  • 现在我们运行这个项目自动线程运行
  • 我想,控制线程与Spring不相关

    它基本上属于java规则


    我希望这个技巧(?)对刚刚进入编程世界的人有所帮助:-)

    您不需要在SpringMVC中手动处理线程。看看这里@JosefProcházka,这是一个很好的例子。但我的客户想要的是控制JavaServlet页面中的后台工作。因此,当他点击“播放/暂停”按钮时,它应该暂停并继续。无论如何,谢谢。