0

我在 Spring mvc 项目中使用 Thread 来做一些后台工作。

我所做的是

  1. 我写了一个扩展线程的类。我添加了 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();}
            }
        }
    };
    
  2. 编辑root-context.xml意图以在服务器启动时尽快启动此线程。

    <bean id="threadTest" class="org.owls.thread.vo.ThreadTest" init-method="init"/>

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

请给我指路~>0<

PS关于java Thread的附加问题。什么方法到底是什么意思pauseresume。我认为停止类似于暂停,但它已被弃用。并且start()不知何故感觉就像'new()'没有恢复。谢谢

4

1 回答 1

0

我想出了如何控制线程。

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

thread.suspend();

并希望从它暂停的地方恢复它,如下所示。

thread.resume();

即使这些方法都已弃用。

(如果有人知道这些的替代品,请回复)

如果您不想在春季项目中出现黄色警告,

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

注释是@SuppressWarnings("deprecated").

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

从这里开始,根据我的经验提供其他解决方案。

为了使 Spring mvc Thread 自动执行,

我做了以下步骤。

  1. 制作一个扩展 Thread 类的简单类。

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

配置文件。在这个方法中。我写了像“ this.start();”这样的代码。

  1. 让 Spring 知道我们有一个应该独立运行的 Thread 类

与网络活动。为此,我们必须编辑 root-context.xml。

像这样添加一个豆子。

<bean id="threadTest" class="org.owls.thread.vo.ThreadTest" init-method="init"/>

init 是用户在步骤 2 中生成的方法名称。

  1. 现在我们运行这个项目自动线程运行。

我猜,控制线程与 Spring 无关。

它基本上属于java规则。

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

于 2013-06-28T01:33:24.830 回答