- テスト
323 :デフォルトの名無しさん[sage]:2020/03/25(水) 15:08:50.00 ID:yVEdwhtr - test
|
- Java入門・初心者質問スレ Part.9
800 :デフォルトの名無しさん[sage]:2020/03/25(水) 15:11:03.04 ID:yVEdwhtr - test
|
- Java入門・初心者質問スレ Part.9
801 :デフォルトの名無しさん[sage]:2020/03/25(水) 15:17:38.36 ID:yVEdwhtr - >>786
>>778のChime2(後者の実装)をnew Chime2().play(i)で100回とか呼んだ場合ですよね? うちでもDirect Clipのdaemon threadが増殖しますよ。 実行環境にもよるのかもしれませんけど、 Direct ClipスレッドはClip.open(ais)で生成されて、Clip.close()後に終了するようです。 Chime2ではclip.close()が呼ばれないのでスレッドが残るのでしょう。
|
- Java入門・初心者質問スレ Part.9
802 :デフォルトの名無しさん[sage]:2020/03/25(水) 15:18:22.75 ID:yVEdwhtr - (おお、やっと書き込めた...why?)
(続き) 778の前者の実装(CountDownLatchを使った方)は、 try-with-resources文でclip.close()が暗黙に呼ばれるので chimeインスタンスを使いまわしても、new Chimeを繰り返してもスレッドは増殖しないですね。 確認した環境: AdoptOpenJDK 12.0.1+12, 64bit Server VM (Hotspot) (オーディオデータは C:\Windows\Media\notify.wav 等) $ java --version openjdk 12.0.1 2019-04-16 OpenJDK Runtime Environment AdoptOpenJDK (build 12.0.1+12) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 12.0.1+12, mixed mode, sharing)
|
- Java入門・初心者質問スレ Part.9
806 :デフォルトの名無しさん[sage]:2020/03/25(水) 22:28:11.93 ID:yVEdwhtr - >>804
解決してよかったですね。 ただ、その報告では結局何をどう変更して解決したのかこちらは分からないです。 個人的には Clip.close() を呼ばなくても大丈夫な場合/環境があるのか気になります。
|