- - PR -
マルチプロセスの環境でSwingのアプリケーションが停止する
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-01-17 20:31
Javaのバージョン1.5.0_12でSwingのアプリケーションのソフトをリリースしているのですが、特定の環境で処理が止まってしまうという現象か発生しました。
動作を見てみると複数スレッドが同時に動いていて、本来発生するはずのないイベントが発生していました。 環境はCore2Duoの関係だけてマルチプロセスが原因の一つのように思われます。 マルチプロセスで挙動が変わってくるというのは考えられることなのでしょうか。 またJavaのオプションで強制的にシングルプロセスで動作させる方法はありますでしょうか。 よろしくお願いいたします。 |
|
投稿日時: 2008-01-17 20:58
複数のスレッド間でデッドロックが起きている匂いがしますが、サンプルコード(小さい短いやつ歓迎!)を見ないと具体的には何も言えません。
|
|
投稿日時: 2008-01-17 22:31
Core2Duo環境ではマルチスレッドが本当にマルチに動くので(タイムスライシングではなく)
今まで潜在的に存在していた同期系のバグが顕在化することがあります。 |
|
投稿日時: 2008-01-17 23:37
rancoさん、nagiseさん返答ありがとうございます。
ソースが非常に長く抜粋も難しいのですが、サンプルコードを作ってみます。 そのときは再度アップさせてください。 処理を見てみるとスレッドが複数あり、一つは定期的(15秒間隔)に動作しており、一つは別のプログラムの終了処理からの通知で動作するという内容でした。 潜在化していたものが顕著化したというご指摘が正しいように思われます。 スレッドの発生タイミングを見直してみます。 解決方法がわかりましたら再度アップさせていただきます。 ありかどうございました。 |
|
投稿日時: 2008-01-18 01:02
フリーズが発生した段階でスレッドダンプを取得して解析してみてはいかがでしょう。
|
|
投稿日時: 2008-01-18 19:16
スレッドダンプについて勉強するよいチャンスなので、よろしければ、モンダイの箇所(複数のスレッドがlockをwaitしているところ)を投稿してください。
[ メッセージ編集済み 編集者: ranco 編集日時 2008-01-18 19:21 ] |
1