2012-03-27 13 views
0

Webサービスで新しいスレッドを作成するにはどうすればよいですか?サーバーサービスではなく、Webサービスの「メイン」でスレッドを開始する必要があります。Java WebServiceスレッドの作成

私はそれをワーカースレッドとして必要とします。そのため、サーバコールはスレッドにメッセージを送信します。これはBGで実行される作業であり、サーバ要求をブロックしません。

私はあなたがThreadPoolを作成する必要がどのように

答えて

1

を行うには考えている、これはあなたがそのスレッドプールのスレッド(複数可)上で実行されるにタスクを提出することができるオブジェクトです。

ThreadPoolを作成する最も簡単な方法は、Executorsクラスで作成したものを使用することです。

+0

これは質問から明らかではないが、著者が作成されていない場合には、独自の実装だと、サードパーティ製のWSは、その後、我々はここでの問題を持って、スタック使用しています。ほとんどの実装は、すでにスレッドプールを使用して、プール内の各スレッド継続的に再利用されます。私はその場合、新しいスレッドを悪い方法として開始することを検討したいと思います。 – Osw

1

メインクラスでスタティックイニシャライザを使用できます。

ここでは1時間ごとにプロパティファイルを再読み込みするタイマータスクを作成するために1つを使用していますが、新しいスレッドを作成するなど、ほとんど何でも使用できます。

static { 
    // Read my properties at start-up. 
    readProperties(); 
    // Start a new timer task to repeat every hour. 
    int rate = Debug? 60*1000 : 1*60*60*1000; 
    // Make a daemon scheduled thread to re-read properties. 
    new Timer("Read properties timer", true).schedule(new TimerTask(){ 
     public void run() { 
      readProperties(); 
     } 
    }, rate, rate); 
} 
関連する問題