-3

Java でバックグラウンドでスレッドを実行する必要があり、実際の機能を開始する前にスレッドに情報を渡す必要がある場合があります。

これを実装する方法は?

次に、さらに操作を行うスレッドを開始し、リクエスト コンテキストから終了することは可能ですか。Web アプリケーションに実装する必要があることに注意してください。

4

3 に答える 3

2

最初の質問に答える例:

class NewThread extends Thread
{
    public String someInformation;

    @Override
    public void run()
    {
        System.out.println(someInformation);
    }
}

public class YourClass
{
    public void startANewThread()
    {
        NewThread newThread = new NewThread();
        newThread.someInformation = "hello";
        newThread.start();
    }
}

2 番目の質問について: このコードは Web アプリケーションで実行する必要がありますが、これらのバックグラウンド スレッドがある時点で終了するように細心の注意を払う必要があります。

両方のスレッドが実行されているときに情報を共有したい場合は、情報アクセスを同期する必要があることに注意してください。

バックグラウンド スレッドの機能によっては、 Quartzのようなフレームワークを使用するのが理にかなっている場合があります。

于 2012-08-08T12:56:33.947 に答える
0

さらに操作を行うスレッドを開始し、リクエストコンテキストから終了することは可能ですか? Web アプリケーションに実装する必要があることに注意してください。

ExecutorService を使用して任意の数のタスクを渡し、完了したらシャットダウンできます。

于 2012-08-08T13:01:11.210 に答える