X



Java入門・初心者質問スレ Part.9

■ このスレッドは過去ログ倉庫に格納されています
0689デフォルトの名無しさん
垢版 |
2020/03/22(日) 20:08:49.48ID:XUbWgAwJ
英語読めなくて自分が赤っ恥のこきっぱじの醜態を晒したのに
なぜが相手が恥かいたことになってる脳内変換するキチガイっぷりもやべーんだよなアンロード君
こういうのが将来、重大な犯罪とか犯す犯罪者予備軍のキチガイなんだわ
バカなのに一生懸命背伸びしてるのも痛々しかったしw
0692デフォルトの名無しさん
垢版 |
2020/03/23(月) 01:53:23.82ID:MlJJ3ygS
自分が頓珍漢なこと言ってるのに、叩かれたら全部自演ってことにして敵を一人にしようとする
スレに張り付いて顔真っ赤にしてるお前じゃあるまいし、そんなめんどくせーことしねぇよ
0693デフォルトの名無しさん
垢版 |
2020/03/23(月) 10:07:45.67ID:IkZ6/wzn
英語読めなくて自分が赤っ恥のこきっぱじの頓珍漢な醜態を晒したのに
なぜがまたまた相手が頓珍漢なことを言った!と脳内変換するキチガイっぷりもやべーんだよなアンロード君
こういう脳障害者がいつか重大な犯罪とか犯す犯罪者予備軍のキチガイなんだわ
糞バカなのに一生懸命背伸びしてるのも痛々しかったしw
0694デフォルトの名無しさん
垢版 |
2020/03/23(月) 10:11:45.79ID:IkZ6/wzn
自分のアホさが理解できなくて相手に八つ当たり攻撃するところとか
このclassNotFound君とそっくりじゃんアンロード君w
0696デフォルトの名無しさん
垢版 |
2020/03/24(火) 07:48:09.82ID:XYP68GGL
音を鳴らした時デーモンスレッドが消えないという現象に悩んでいます。
これが問題のクラスです。
https://ideone.com/r0mbjJ
.wavファイルはどれも「チャリン」とか「ピポッ」みたいな1、2秒の短いファイルです。
オーディオクリップを再生する時は Direct Clip というデーモンスレッドが立ち上がります。
デバッガでトレースしてみたところ、

new Chime().play(0);

とやると、43行目の

clip.open(ais[type]);

の部分で Direct Clip が立ち上がり、Eclipse のデバッグビューに現れます。
そして70行目の

clip.close();

が実行されると消滅します。
ところが、数十回に1度くらいの頻度で、このデーモンスレッドが消えません。

デーモン・スレッド [Direct Clip] (実行中)

という表示がデバッグビューにずっと残って、だんだんと増えていきます。
close文が実行されていないのかと思ってprint文を入れてみましたが、
問題が発生した時もちゃんと

open start stop close

と表示されています。頻度が小さいこともあって、どういう条件の時に起きるか特定できていません。
コードを見てここがおかしいというというところがあるでしょうか?
0698デフォルトの名無しさん
垢版 |
2020/03/24(火) 10:15:35.62ID:iThMGLi0
それにしてもひっでぇソースだな
100行もないソースでよくここまで酷くできるもんだ
0703デフォルトの名無しさん
垢版 |
2020/03/24(火) 11:44:46.53ID:aQM8+Nbs
ちなみに俺は実行してもわからないし
SSCCEが何なのかもわからない
どうせ意識高い系のでくのぼうが作り出した造語だろと思ってるよ
0706デフォルトの名無しさん
垢版 |
2020/03/24(火) 11:58:01.32ID:iThMGLi0
例外をキャッチしても処理を止めない漢気あるクソコード
それがし、感服いたした
0712デフォルトの名無しさん
垢版 |
2020/03/24(火) 17:12:26.78ID:iThMGLi0
まーた昨日のclassNotFound君=アンロード君が暴れてるのか
嘘でも何でもなくマジではお前は向いてないからとっとと回れ右しとけって
0715デフォルトの名無しさん
垢版 |
2020/03/24(火) 18:31:47.27ID:j8MbTW6x
>>708
>>705ではないが、俺も無限ループはダメだと言われた
理由は言われなかったが、おそらくループを抜ける部分に不備があった時に
本当に無限ループになってしまうというリスクを孕んでいるからかと
0717696
垢版 |
2020/03/24(火) 19:02:41.61ID:XYP68GGL
いまだに原因不明ですが、0.5秒ごとに new chime().play(n); (n は 0 - 2) を500回繰り返すというプログラムにしたら、
時々プログラムが1秒くらい止まってその後 Direct Clip が増えるという現象が見られました。
これって何か関係ありますかね?
0720715
垢版 |
2020/03/24(火) 19:13:42.00ID:j8MbTW6x
>>716
ここは初心者スレだ
言いたいことは分かったから用が済んだら出て行ってくれないか?
お前の様にロクに回答もせずただ人をこき下ろすだけの存在ってすげー迷惑なんだよ
0721デフォルトの名無しさん
垢版 |
2020/03/24(火) 19:32:14.50ID:iThMGLi0
初心者スレだからって初心者という言葉が免罪符になるとは限らない
だって君、初心者未満なんだもん
そういうのに答え教えても何も身に付かないんだよね
0724696
垢版 |
2020/03/24(火) 19:43:55.33ID:XYP68GGL
>>719
色々試してみても変わらないです。
つけられるメソッド全部に synchronized をつけたら全く Direct Clip が消えなくなりました。
0725デフォルトの名無しさん
垢版 |
2020/03/24(火) 19:47:06.40ID:h4RLamPb
君たちさ詰められたときに逃げられるように曖昧なことしか言ってないようだけど
そういうのやめようよ

フラグの同期が取れてないのが原因なのかね?
デッドコードしてコンパイル時に消されてるとするなら
一回もcloseは呼ばれない

質問者が確認したところではcloseは呼ばれてる
そのことからデッドコードとして消されてるわけではない

可視性の問題かなあ、仮想マシンでメモリの同期が保証されない場合
CPU依存になるわけだけれどもインテルのCPUだと強いメモリモデルだから
可視性の問題はほとんど起こらなかったりするわけだけれども
君たちは具体的にどういう問題だと認識してるわけですか?
0726デフォルトの名無しさん
垢版 |
2020/03/24(火) 19:51:05.10ID:iThMGLi0
回答を教えてもらう立場の奴が取る態度じゃないから
ノーアンサーでフィニッシュ!
0727デフォルトの名無しさん
垢版 |
2020/03/24(火) 19:53:51.02ID:h4RLamPb
>>726
> while(running)
君の回答はこれだっけ? これでいんだっけ?
0728デフォルトの名無しさん
垢版 |
2020/03/24(火) 20:03:36.65ID:cFvopTvT
すげえ
やっと少しでもJavaに関係ある反応したと思ったら、
誰でも分かる超低レベルの内容を嬉々として答えてる
こいつすげえ
0729デフォルトの名無しさん
垢版 |
2020/03/24(火) 20:07:53.70ID:iThMGLi0
デーモンスレッドの問題にゴミみたいなキーワードしか並べられない低能が言うなアホカス
何行目か教えてやれよ?ん?どうだ?お前にわかるか?
どうした?アホ
0730デフォルトの名無しさん
垢版 |
2020/03/24(火) 20:09:50.48ID:iThMGLi0
>https://www.google.com/search?q=スレッド 同期化 可視性 java&oq=スレッド 同期化 可視性 java

なんだこれw
全然関係ねーわドアホw
今までアホすぎてわざわざ突っ込まなかったけど
こういう糞馬鹿が勘違いして俺の真似してんだよなw
低能糞アホ
消えろマヌケ
0731デフォルトの名無しさん
垢版 |
2020/03/24(火) 20:12:40.33ID:h4RLamPb
>>730
全然関係なかったんだ、そうなんだ
0732デフォルトの名無しさん
垢版 |
2020/03/24(火) 20:21:29.82ID:iThMGLi0
中級者以上ならrunnableの実装見りゃすぐにわかるんだけど
ID:cFvopTvT ←こういう馬鹿は結局わからんもんだからすぐに同期ガーとかマヌケなこと書くんだよね
バカが真似すんなよアホ
0733デフォルトの名無しさん
垢版 |
2020/03/24(火) 20:59:11.09ID:cFvopTvT
少なくとも同期化してないのは一つの問題
while ループの書き方も問題

play の度、毎回 clip を open してるのと、setFramePosition(0) を入れてないから、そもそもリスナが 1回目しか呼ばれてないのが直接の原因

だけど、これだけは言わせてくれ
ID:iThMGLi0 こいつは 100% 何ひとつ理解してなくて、どんな回答でも全ての回答に対して間違ってるかのような示唆をする
そして技術的なことは一つも言わない、言ったとしても間違えてる
本当に迷惑だから消えてくれ

いっとくが、俺はアンロードの事書いたやつじゃねーからなw
自演とかわけわからんこと言ってくんなよ
0734デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:12:59.44ID:iThMGLi0
もう答え教えてやるけど
clipをクラス変数で共有してるからだ

>少なくとも同期化してないのは一つの問題

ソースコードもまともに読めずに思い込みで「同期化してないのが問題!(キリィイイイイイイッ!」とかwww
バカの癖に回答側にまわって間違ったことをさも正解のように書く諸悪の根源ガイジ
おまえのような糞馬鹿がいるから初心者が余計に沼るんだよドアホ
お前みたいアホはもう死ねよカス
0735デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:14:05.63ID:iThMGLi0
>play の度、毎回 clip を open してるのと、setFramePosition(0) を入れてないから、そもそもリスナが 1回目しか呼ばれてないのが直接の原因

これも全然関係ねーしwww
糞馬鹿
マジで死んどけガイジ
0736デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:14:50.97ID:h4RLamPb
なるほど、オブジェクトを使いまわしてるわけね
これで5000回まわしてみたけど再現しなかった
for (int i = 0; i < 5000; i++) {
  new Chime().play(i % 3);
}

こっちだと再現した
Chime chime = new Chime();
for (int i = 0; i < 50; i++) {
  chime.play(i % 3);
}
0737デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:15:31.26ID:iThMGLi0
まぁもしこれが答えを誘導するための質問者の自演だとしたら
さすがにワイも一本取られたわw
ここまでの低能糞馬鹿ガイジを演じられるとか別の意味でかなり有能だからw
アホ
0738デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:23:53.87ID:iThMGLi0
アンロード君みたいに開き直って
「おまえがおかしいんだ!(ムキッー!」 って言ってもええんやで?
糞馬鹿ガイジの ID:cFvopTvT 君?ん?どうした?ん??
0739デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:24:22.67ID:h4RLamPb
playのたびにclip変数が上書きされるから
clip.close()が呼ばれないってことかの?
0740デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:28:00.37ID:iThMGLi0
>ID:iThMGLi0 こいつは 100% 何ひとつ理解してなくて

特大ブーメラン凄いですねぇ・・・ホントw
質問者は何でclipを共有するとスレッド残るのかこいつに教えてもらったら?w
どうだ?教えられるかカス?ん?
0741デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:31:33.35ID:iThMGLi0
まず正しい回答してやっても礼の一つもないんだよねこういう奴って
ほんと舐めてるよね
礼も言わずに次々質問してんのなw
おまえも死んどけゴミ
二度とくるなアホ
0742デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:36:05.81ID:h4RLamPb
>>741
君、正しい回答したことあるの?w
0744デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:39:53.86ID:h4RLamPb
くっ・・・体が消えていく・・・>>743
0745デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:40:08.81ID:h4RLamPb
たしかこんなネタあったよね
0746デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:41:53.84ID:iThMGLi0
アンロード君
NotClassFound君
同期化君

キチガイほら吹き3人衆
息を吐くように嘘を教えるとかおっそろしいでホンマ
0747デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:46:34.31ID:h4RLamPb
>>734
一応だけどクラス変数はインスタンスを作らなくても使用できる変数で
clipはインスタンス変数というのが適当だよ

君の書き込みからはたまに知性が垣間見れるから多分書き間違っただけだろうけど
初心者スレなんで真に受ける人がいるかもしれないから一応

データ競合があるのは事実でその辺りも含めてこのソースをどう修正するかは
腕の見せどころではあるね
0748デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:49:47.16ID:iThMGLi0
>一応だけどクラス変数はインスタンスを作らなくても使用できる変数で
はい、アホ

おまえさぁ、アホのくせになんでレスつけるの?アンロード君か?
何が「このソースをどう修正するかは腕の見せどころではあるね!(キリッ!!!」 だよアホ
1分で終わるわアホ
ほんまキチガイ糞馬鹿ガイジの巣窟やな
0749デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:52:28.37ID:h4RLamPb
>>748
どこがアホ?
クラス変数とインスタンス変数は違うよね
同じだと思ってるん? どうなのん?
0750デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:55:44.80ID:cFvopTvT
違う、こいつ ID:iThMGLi0 の言ってることが間違い

毎回インスタンス作っても出来るけど、何回も再生するのに何回もインスタンス作って open して play するのは適当じゃない
一回 open して、特に小さい音声ファイルの場合は、ロード1回したら使い回さないと、再生はじめが遅くなるしパフォーマンスは悪い
そもそもこれは1度 new して初期化したら 使い回すっていうそういう設計のクラスでしょ

クラス変数とインスタンス変数の違いも知らない人間の言う言葉を信じてはいけない
0751デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:57:09.96ID:iThMGLi0
初心者未満はもう文章書くのやめよう
な?
もう書いてることの全てが間違ってるからさ
入門書1億万回読めやカス
0752デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:57:55.03ID:h4RLamPb
>>751
クラス変数とインスタンス変数は違うよね
同じだと思ってるん? どうなのん?
0753デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:58:26.04ID:cFvopTvT
ほらね、技術的なことを書いてボロが出たら関係ないこと言い始めたでしょ
上のレス読んでてもこいつずっとこう
0754デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:58:38.75ID:iThMGLi0
バカだから180℃間違った解釈でギャーギャー「俺が正しいんだ!(キリィイイイ!!」って喚いてんだよね
ほんと死んでくれゴミ
二度と回答するなアホ
0755デフォルトの名無しさん
垢版 |
2020/03/24(火) 21:59:53.70ID:h4RLamPb
>>754
入門書1億万回読んだならわかると思うんだけどクラス変数とインスタンス変数は違うよね?
0756デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:00:17.86ID:iThMGLi0
見事にアンロード君と同し病気発症しててワロタwwwww
ほんまモンスターガイジだなコイツw
バカ通りこしてキモすぎるからマジで死ねってw
アホ
0757デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:01:09.24ID:h4RLamPb
>>756
クラス変数とインスタンス変数は違うよね
同じだと思ってるん? どうなのん?
0758デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:02:26.56ID:iThMGLi0
こんな感じでソースコードをまともに読めない初心者未満のガイジに
正しい答えを教えても全く意味がないことがよくわかる良い例だな
何も成長しないんだよ
THE モンスター低能ガイジ
0759デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:03:55.36ID:h4RLamPb
>>758
クラス変数とインスタンス変数は違うよね
同じだと思ってるん? どうなのん?
0760デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:05:00.34ID:cFvopTvT
さすがにインスタンス変数の意味でクラス変数って言っちゃうとか擁護のしようがない
とりあえずそこのところは俺も気になるから徹底的に追求してあげてくれ
こういう風に関係ない罵詈雑言書き連ねてても、今後このスレにいる以上はずっと追求し続けてあげてくれ
0761デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:05:37.46ID:iThMGLi0
スコープが違うだけで実態がなくても使えることにはならない
エラー出ても使えるって言い張るガイジなら勝手にどうぞ
くだらねーことを何回も書いてホントきしょくわるいね
アホ
0762デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:06:36.62ID:cFvopTvT
君はあだ名つけるの好きみたいだからそれに倣うけど、君の名前はクラス変数君ってことでいい?
0763デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:07:00.61ID:h4RLamPb
>>761
クラス変数とインスタンス変数は違うよね?
0764デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:07:43.07ID:iThMGLi0
>そもそもこれは1度 new して初期化したら 使い回すっていうそういう設計のクラスでしょ

これもソースコード読めな過ぎの馬鹿文章
ほんとおまえさぁ、ただのほら吹き糞馬鹿なんだからもう意地張ったり背伸びするのやめたら?w
全てが間違っててアホなんだよお前のレスはw
アホ
0765デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:07:54.24ID:h4RLamPb
>>762
もうこのスレのアイドルだから姫でもいんじゃないかな
0766デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:09:26.60ID:iThMGLi0
別に毎回newしなくてもエラーでないしw
ほんとソースコード読めないアホ
消えろゴミ
0767デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:10:04.73ID:cFvopTvT
間違えてる間違えてるってそればっかだけど、間違えてるなら何が間違えてるか指摘しなさいよ
クラス変数とインスタンス変数の違いは丁寧に教えてもらってでしょ君
お礼言わない人嫌いだったよね?
ちゃんとお礼言いなよ
0768デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:14:06.44ID:iThMGLi0
とりあえずホラ吹きガイジのお前は二度と回答側にまわらないように
一生ROMってろ
0769デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:18:28.02ID:cFvopTvT
>>766
あなたの指摘は、
> clip を "クラス変数www" で共有してるから
って言うものでしょ?

clip を共有しないということは、毎回 Clip を new することに他ならないじゃないですか
共有せずに、毎回 new もせずに、clip を使って再生する方法を後学のために教えてもらえますか?
0771デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:22:41.32ID:cFvopTvT
さすがに、クラス変数とインスタンス変数の違いも知らない初心者とバレた以上、その逃げ方は滑稽でしかない
0772デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:26:38.82ID:iThMGLi0
聖者ワイ「これこれはこうだからこうなる。わかったか池沼よ?」
池沼(ID:cFvopTvT)「うるせー!俺が正しいんだ!ボケ!」

池沼(ID:cFvopTvT)「後学のために教えてもらえますか?(ブヒッw」
聖者ワイ「消えろゴミ」


逃げるも糞もおまえは馬鹿すぎ&ほら吹き&無様&低能
ソースコードまともに読めるようになってから喚け低能糞ゴミキッズ
きしょくわりぃ
0774デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:30:30.16ID:iThMGLi0
己の醜態を関係ないネタで勝手に知らない扱いして
喚き散らしてなかったことにしようとしてる無様な姿は酷すぎるし
レスせずに消えればいいものを
アンロード君といいこの手の醜態晒すキチガイはどういう脳みそしてんだろうな
マジで
さすがにきしょすぎて引くわ
0775デフォルトの名無しさん
垢版 |
2020/03/24(火) 22:32:20.44ID:iThMGLi0
今回はお前があまりに頭が悪すぎる知ったかほら吹きレスをつけるから
間接的に質問者に答えを教えることになったが
おまえみたいゴミに教えることなんて一つもないよ
脳みそ腐ってんのか?
0776デフォルトの名無しさん
垢版 |
2020/03/24(火) 23:32:52.26ID:j8MbTW6x
ID:iThMGLi0には誰も味方がいない…
リアルでも孤立してるんだろうな
こんな奴に友人が出来るわけがない

初心者入門者はこのスレ以外で質問することを強くお勧めしたい
0777デフォルトの名無しさん
垢版 |
2020/03/24(火) 23:48:39.37ID:iThMGLi0
味方も糞も嘘つき同士で仲良くしてるだけやんw
ID変えて一生懸命ワイを叩いてるけどさw
ワイがいなかったら質問者はこいつ等の嘘に悩まされて解決策は一生わからないままだったんやで
おっそろしい話だ
0778デフォルトの名無しさん
垢版 |
2020/03/25(水) 00:08:12.06ID:Ye7K7uz1
>>696
Clipはスレッドセーフなんだけど
AudioInputStreamがスレッドセーフじゃないっぽい

再生ごとにAudioInputStreamのインスタンスを作成すればよい
STOPの待ち合わせはラッチを使うと簡単かつ安全
https://ideone.com/04E4rq

Clipを使い回すならこんな感じでいんじゃないかな
https://ideone.com/ieK4ND
0779デフォルトの名無しさん
垢版 |
2020/03/25(水) 00:14:28.89ID:Ye7K7uz1
>>777
姫、僕はもう寝るよ
0780デフォルトの名無しさん
垢版 |
2020/03/25(水) 08:15:14.54ID:S+BBkcDL
Clip は、再生前に音声データを全部ロードしてから使うクラスで、
インスタンスを使い回さず、再生前に再生時間の取得とかが必要ないなら、
SourceDataLine を使ってリアルタイムにストリーム化した再生をしたほうが良い

「AudioInputStream がスレッドセーフじゃないっぽい」というのは本来はあまり関係なくて、それを使ってる Clip が実装内で同期化してるなら問題ない
質問者のコードは何故か毎回 open してるからあれだけど、Clipを使う場合、open時に受け渡すだけの AudioInputStream は、Clip の中以外で複数スレッドでは使わないでしょうし

Clip の API見たらスレッドセーフと明示されてるわけじゃなくて、本当は Clip の実装クラスが同期化してるかによるけど

>>778 の下の方のソースコードで問題ないと思う

細かいことをいえば、
Clip[] clips = {
create("C:\\Users\\a\\Desktop\\work\\decision1.wav"),
create("C:\\Users\\a\\Desktop\\work\\decision2.wav"),
create("C:\\Users\\a\\Desktop\\work\\decision3.wav")
};
この変数自体が同期化されてないとか

ロード、アンロード、ストリーム化した再生、同期化、複数同時再生とやってったコードあるけど、ここには書けない
0781デフォルトの名無しさん
垢版 |
2020/03/25(水) 08:31:00.19ID:S+BBkcDL
補足)
>>778 の下の方のソースコードで問題ないと思う
といったけど、再生終わる前に再生すると壊れるから、やっぱりちゃんと同期化は必要かな
0782デフォルトの名無しさん
垢版 |
2020/03/25(水) 08:42:22.19ID:z2zjBhnK
>>780
なるほどね
clipsの変数が同期化されてないのは可視性の話?
スレッドが起動するときに同期化は行われるはず
0784デフォルトの名無しさん
垢版 |
2020/03/25(水) 09:23:39.45ID:S+BBkcDL
>>781
final でない変数を複数スレッドで使う場合は常に同期化が必要

> スレッドが起動するときに同期化は行われるはず
たしかに、実質的に final なら動作上は問題ない、だから「細かいこと」
でも、final にしてないなら作法上やっぱり同期化は必要(final Clip[] clips でもダメだからね)
自分だけが見て、自分だけが書くプログラムなら好きにすればいいよ
0785デフォルトの名無しさん
垢版 |
2020/03/25(水) 09:33:23.96ID:S+BBkcDL
>>783
ごめんね、やっぱり問題なかったわ…
再生中に再生しようとすると、無視されるだけだった
0786696
垢版 |
2020/03/25(水) 10:10:31.34ID:LViw/AR0
>>778
どうも、昨日の質問者です。わざわざプログラムまで書いて頂いてありがとうございます。下の方ですが、これを

Chime chime = new Chime();
chime.play(0);

と使えば完璧ですね。ですが、

new Chime().play(0);

にすると Direct Clip が再生した回数分増えていかないですか?

そして上の方ですが、0.2秒間隔で500回再生してみると、通常は

スレッド[Thread-124](実行中)
デーモンスレッド[Direct Clip](実行中)
スレッド[Thread-125](実行中)
デーモンスレッド[Direct Clip](実行中)
スレッド[Thread-126](実行中)
デーモンスレッド[Direct Clip](実行中)

というようにデバッグビューに表示され、音が鳴ります。しかし時々

スレッド[Thread-124](実行中)
スレッド[Thread-125](実行中)
スレッド[Thread-126](実行中)
デーモンスレッド[Direct Clip](実行中)
デーモンスレッド[Direct Clip](実行中)
デーモンスレッド[Direct Clip](実行中)

表示がこのようになり、その間音が止まります。そしてまた元に戻ったところでたまった音が一気に鳴るような現象が起きます。
そしてこの現象が起きる度に消えない Direct Clip が一つ増えます。この現象が出ているのはうちだけでしょうか?
0787デフォルトの名無しさん
垢版 |
2020/03/25(水) 10:15:20.54ID:z2zjBhnK
>>784
finalにするとコンストラクタの処理が完了した時点での可視性が保証されるってことでしょ

一方でスレッドが起動するときにもhappens-beforeのセマンティクスは適用されるから同期の目的が可視性ならfinalつけなくても問題ないと思ったんよ
0788デフォルトの名無しさん
垢版 |
2020/03/25(水) 10:35:06.66ID:S+BBkcDL
>>787
> finalにするとコンストラクタの処理が完了した時点での可視性が保証されるってことでしょ
違う、そういう意味で final の場合は同期が必要ないって言ってるんじゃない
final にすると書き換えられないから、一度可視になればそのままの値であることがずっと保証されてる

一方、Clip[] clips の場合は final じゃないから、値が更新されたらその時点で同期が保証されない

作法としては、final じゃない、複数スレッドに渡って使用する変数は常に同期は必要
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況