0

バックグラウンド作業を行うために、Spring mvc プロジェクトのスレッドを使用しています。

私がやったことは

  1. Thread を拡張するクラスを作成します。そして、このクラスを開始する init() メソッドを追加しました。Whole 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スレッドに関する追加の質問。メソッドが正確に意味するものpauseresume. 停止は一時停止に似ていると思いましたが、非推奨です。そしてstart()、どういうわけか「new()」が再開されないように感じます。ありがとう

4

1 に答える 1

0

スレッドを制御する方法を理解しました。

一時停止する(停止しない)場合、コードは次のようになります。

thread.suspend();

そして、以下のように、一時停止したところからこれを再開したいと考えています。

thread.resume();

これらの方法は両方とも非推奨ですが。

(誰かがこれらの代替品を知っている場合は、返信してください)

春のプロジェクトで黄色の警告を表示したくない場合は、

そのメソッドに注釈を追加するだけで、警告を削除できます。

コメントがございます@SuppressWarnings("deprecated")

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

ここからは、私の経験に基づいた追加のソリューションです。

Spring mvcスレッドを自動実行するには、

次の手順を実行しました。

  1. Thread クラスを拡張した単純な Class を作成します。

  2. そのクラス内で、メソッドを作成します。これは

構成ファイル。この方法で。" " のようなコードを書きthis.start();ました。

  1. 独立して実行する必要がある Thread クラスがあることを Spring に知らせます。

ウェブ活動で。これを行うには、root-context.xml を編集する必要があります。

このように豆を入れます。

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

init は、ステップ 2 でユーザーが生成したメソッド名です。

  1. 次に、このプロジェクトを実行します 自動的にスレッドが実行されます。

スレッドの制御は、Spring とは関係ありません。

基本的にJavaルールに属します。

このTIP(?)がプログラミングの世界に入ったばかりの人に役立つことを願っています:-)

于 2013-06-28T01:33:24.830 に答える