[Seasar-user:18124] Re: [S2Chronos]タスクの一時停止

kanari takuma [E-MAIL ADDRESS DELETED]
2009年 7月 30日 (木) 14:11:58 JST


加藤さん。
金成です。
ご回答ありがとうございます。

単純にTaskA.doExecuteを同期化すれば問題なかったのですね。
昨日ご指摘頂いた方法での実行確認を行ったので、報告致します。

実行確認を行いましたが、
問題なく動作致します(現時点では、コンソール出力レベルの確認です)。

以下、使用したソースのdoExecuteメソッド部分です。

ATask.java
public synchronized void doExecute() {
System.out.println("ATask実行 : ");
pause.set( ! pause.get());
this.notify();
}

BTask.java
public void doExecute() {
int count = 0;
while(count++ <  9000000) {
System.out.println("BTask実行中 : " + count);
waitProcess();
}
}

宜しくお願い致します。


2009/07/29 17:23 Junichi Kato <[E-MAIL ADDRESS DELETED]>:

> 金成さん
> 加藤です。
>
> public synchronized void doExecute() {
>         System.out.println("ATask実行 : ");
>        pause.set( ! pause.get() );
>        this.notify();
> }
>
> とするとうまくいくと思うんですが、どうでしょうか。
> よろしくお願いします。
>
> 2009/07/29 10:25 に kanari takuma<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > 加藤さん
> > 金成です。
> > ご回答ありがとうございます。
> > 早速ですが、
> > 昨日ご指摘頂いた実装方法で、動作確認を行いましたので、報告致します。
> > 以下、使用したクラスのdoExecute部分です。
> > ・ATask(CRON)
> > public BTask bTask;
> > private AtomicBoolean pause = new AtomicBoolean();
> > -- 中略 --
> > public void doExecute() {
> > System.out.println("ATask実行 : ");
> > pause.set( ! pause.get() );
> > this.notify();
> > }
> > (AbstractPausableTask内でpauseがnullになってしまうため、
> > ATaskのpauseの宣言を、private AtomicBoolean pause;
> > → private AtomicBoolean pause = new AtomicBoolean();
> > に変更して、AbstractPausableTask.setPauseを呼び出すように修正しました。)
> > ・BTask(NonDelayTrigger)
> > public void doExecute() {
> > int count = 0;
> > while(count++ <  9000000) {
> > System.out.println("BTask実行中 : " + count);
> > waitProcess();
> > }
> > }
> > ・AbstractPausableTaskに変更はありません。
> > このタスクを実行した結果、
> > ATask.doExuceteでの、notifyを呼び出し時に、
> > IllegalMonitorStateExceptionが発生します。
> > スレッド的に良くないと思うのですが、
> > notifyを呼ばなければ、正常に一時停止、再開が可能でした。
> > (例えば、AbstractPausableTask内で、pauseObjectのnofityまで操作するのは、
> > あまりスマートなやり方ではないのでしょうか。)
> > 実行方法に問題点等ございましたら、ご指摘下さい。
> > 宜しくお願い致します。
> >
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> >
>
>
>
> --
> /**
>  * name  : Junichi Kato
>  * email : [E-MAIL ADDRESS DELETED]
>  *
>  * blog  : http://d.hatena.ne.jp/j5ik2o/
>  *
>  * commiting projects :
>  * http://jiemamy.org/
>  * http://s2chronos.sandbox.seasar.org/
>  * http://s2config.sandbox.seasar.org/
>  */
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20090730/833d2fcb/attachment.html>


Seasar-user メーリングリストの案内