X



Java入門・初心者質問スレ Part.9
■ このスレッドは過去ログ倉庫に格納されています
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 じゃない、複数スレッドに渡って使用する変数は常に同期は必要
0789デフォルトの名無しさん
垢版 |
2020/03/25(水) 10:41:23.65ID:z2zjBhnK
>>788
そういう意味ね

状態変えられたらどうしようもないし
変数に再代入してるところないし
上のコードは同期取れてるけど一般論としてはということね
なるほどね
0790デフォルトの名無しさん
垢版 |
2020/03/25(水) 10:44:26.47ID:z2zjBhnK
>>786
ループのたびにインスタンス作るやり方だと5000回
回してもうちのPCでは再現しなかったんよね
条件が足りてないのかもしれないけど
0791696
垢版 |
2020/03/25(水) 11:09:44.26ID:LViw/AR0
>>790
うちの環境のせいかもしれませんね。これ以上は諦めることにします。
0792デフォルトの名無しさん
垢版 |
2020/03/25(水) 11:11:22.49ID:dEduIUns
>>781
そこにfinal付けるかどうかこの例だと全くどうでもいい。
配列・オブジェクトに対するfinalとは?
もちろんfinalを可能な限り付けることは推奨だけど。
0794デフォルトの名無しさん
垢版 |
2020/03/25(水) 11:17:55.91ID:dEduIUns
あ、ごめん。
わかってないのは、>>788か。
0795デフォルトの名無しさん
垢版 |
2020/03/25(水) 11:28:16.89ID:nfUzvxHY
>>786
単にそのライブラリが、非同期・マルチスレッドに対応していないのだろう。
対応していない機能を使うから、バグるのでは?

ライブラリには、シングルトンみたいな単一オブジェクト・資源を使っているものがあって、
それを共有できないものが多い

だから、ライブラリの説明書には、
このライブラリはマルチスレッドでは使えない、などと書いてあるものが多い

複数の効果音を同時に使えるライブラリなどは、特殊なんだと思う。
Windows だけとか、OS を限定される

OSS・Linux 系のライブラリでは、マザーボード上のチップ内の特殊なネイティブ機能は使えないのでは?
普通これらでは、ハイバネートから戻れないとか、電源機能などもまともに動かないだろ
0796795
垢版 |
2020/03/25(水) 11:33:11.93ID:nfUzvxHY
ヤマハなどの音源チップと、ライブラリのAPI が、バージョン違いで一致しないとか

基本、マザーボード上のチップは、Windows 限定だろ。
OSS・Linux 系のライブラリでは、正常に動くかどうか分からない
0797デフォルトの名無しさん
垢版 |
2020/03/25(水) 11:57:47.88ID:ag+nUZxm
まーた頭悪い奴等同士でグダグダ交換日記してるよ
ほんとキチガイやなこいつ等
まとめて逝って良し
0798デフォルトの名無しさん
垢版 |
2020/03/25(水) 14:23:25.54ID:ag+nUZxm
まぁ一番イラつくのは全てが他力本願の頭のイカれた質問者だけどさ
やってること同じなのにちょっとデバッグウィンドウの表示ちがうだけで
「〇〇じゃないですか!?なんでですか!?」って
バカかとアホかと
少しはテメーで考えろボケカス
ほんとこういうのに答え教えても何の意味も価値も成長もないんだわ
0801デフォルトの名無しさん
垢版 |
2020/03/25(水) 15:17:38.36ID:yVEdwhtr
>>786
>>778のChime2(後者の実装)をnew Chime2().play(i)で100回とか呼んだ場合ですよね?
うちでもDirect Clipのdaemon threadが増殖しますよ。
実行環境にもよるのかもしれませんけど、
Direct ClipスレッドはClip.open(ais)で生成されて、Clip.close()後に終了するようです。
Chime2ではclip.close()が呼ばれないのでスレッドが残るのでしょう。
0802デフォルトの名無しさん
垢版 |
2020/03/25(水) 15:18:22.75ID: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)
0803795
垢版 |
2020/03/25(水) 15:23:47.87ID:nfUzvxHY
漏れらは、動かないゲームエンジンとか知ってるから、音なんて出ない方が多いぐらいw
Pixi.js をコアにした、Phaser は音が出るらしいとか、そういう噂で決める

大手のブラウザみたいに、Windows 用を別に作っているものは、半分ぐらいは動くけど、
OSS・Linux 系のライブラリでは、ソースコードを書いてるだけだから、
それをWindows ネイティブの機械語に変換した場合に、動くとは限らない

無線LAN でも、半分は動かない。
各メーカーで、ドライバーを作っていれば動くけど

msys2/mingw で、Windows 用にコンパイルしても、互換性が低い。
WSL の方が、MS が作っているから、互換性が高い

ヤマハが、Java・OSS 向けのドライバーを作っていれば動くけど、まさか作っていないだろ
0804696
垢版 |
2020/03/25(水) 19:06:14.91ID:LViw/AR0
>>802
解決しました。コンパイラのバージョンが1.8になってました。
Eclipseを最新のものにしていないせいか11までしか使えないのですが、それにしたら症状が消えました。
ありがとうございました。
0806デフォルトの名無しさん
垢版 |
2020/03/25(水) 22:28:11.93ID:yVEdwhtr
>>804
解決してよかったですね。
ただ、その報告では結局何をどう変更して解決したのかこちらは分からないです。

個人的には Clip.close() を呼ばなくても大丈夫な場合/環境があるのか気になります。
0807696
垢版 |
2020/03/26(木) 00:01:09.82ID:ZCUR4732
>>806
>>778の上のプログラム、CountDownLatchを使った方ですね。それを500回 new した時に
その時々によりますがDirect Clip が3つから6、7個くらい残るという症状でした。
で、それを入れていたプロジェクトが使うコンパイラのバージョンを1.8から11に上げたらきれいに直ってしまったということです。
プログラムの方は何もいじらずそのままです。
0808806
垢版 |
2020/03/26(木) 01:21:15.44ID:bOCMBW8V
>>807
うちでも、Java 8でCountDownLatch版で new Chime().play(i) を連続で500回呼ぶのを10回ぐらい実行したら一回だけDirect Clipスレッドが一つ残りました。
見てみると、
com.sun.media.sound.DirectAudioDevice$DirectClip.run()
の(コメント込みで)10行目ぐらいの lock.wait() で止まっていました。
この箇所の実装をJava 8とJava 12で比較すると少し修正されています。

Java8 の実装だと
while (thread == curThread) {
で thread == curThread が true と判定した後、
synchronized(lock) { ※
で同期化ブロックに入る前に DirectAudioDevice$DirectClip.thread フィールドが変更されていた場合、
そのまま lock.wait() に突入してしまうタイミングがあるように見えます。
つまり DirectClip.run() が※のモニタを取る前に
DirectAudioDevice$DirectClip.implClose() が DirectClip.thread = null として lock.notifyAll() してしまうと、
DirectClip.run() の lock.wait() は来ない通知 (lockのnotify) を待ち続けることになるのでしょう。

Java12 では DirectClip.run() の synchronized(lock) を取ってすぐに
while (!doIO && thread == curThread) {
で DirectClip.thread フィールドをチェックするようになっているので、
絶妙なタイミングで DirectClip.implClose() に割り込まれても大丈夫なようにライブラリが修正されたのでは無いでしょうか。

リリースノートかbug paradeを丹念にチェックしたら、どこかに載っているかもしれません。
0811デフォルトの名無しさん
垢版 |
2020/03/26(木) 07:32:48.18ID:VOEDxD9+
そもそも説明になってなさすぎる
まともな文章書けないガイジはレスすんのやめろ
マジキチ
0812デフォルトの名無しさん
垢版 |
2020/03/26(木) 07:40:08.31ID:PXNa4DUz
■ Java 質問スレのググれカス君とは
質問と回答に対して罵倒を続ける荒らし
罵倒はワンパターンで、ググれカス、ゴミ、馬鹿、キチガイ、低能、チョンなどを多用します

プログラミングの基礎知識がないため、技術的な事はほとんど言いません
過去の発言でクラス変数とインスタンス変数を勘違いしていたり、基本的な事も理解できていないことが判明しています
どんな回答がついてもそれが間違いだと主張しますが、根拠は示しません
あなたの質問についた回答が正しいかどうかは自分で判断して下さい
彼は自分に対する批判は全部自演だと思っているようなので、構うだけ無駄です
0813デフォルトの名無しさん
垢版 |
2020/03/26(木) 07:56:23.34ID:VOEDxD9+
図星突かれたらすぐ顔真っ赤にして捏造する癖やめたほうがいいぞ低能ゴミカス
アホ
0814デフォルトの名無しさん
垢版 |
2020/03/26(木) 08:22:06.51ID:IY98K1Cx
説明になってなさすぎる (自分も説明は出来ない)
ってパターン多すぎてネタ化してる
0815デフォルトの名無しさん
垢版 |
2020/03/26(木) 10:07:29.94ID:1YJSz7Cz
ロック取ってループで条件チェックはマルチスレッドの基本だけれどそれやってなかったんだなー標準ライブラリにもバグが潜んでるものなんだなー
0816795
垢版 |
2020/03/27(金) 04:13:43.12ID:cwhPeqJj
ゲームエンジンとか、まともに音が出る方が少ないw
それに、色々なブラウザで動かないから、Chrome 限定にする

Pixi.js をコアにした、Phaser は音が出るらしいとか、
そういう噂ばっかりを集めて、皆で動くエンジンへ移動するw

開発者は、動かないエンジンを修理するよりも、
皆で動くエンジンへ移動するw
0817デフォルトの名無しさん
垢版 |
2020/03/27(金) 18:56:47.63ID:HqZQi56I
クラス変数とインスタンス変数を勘違いした発言なんかしたら、俺だったら恥ずかしくて二度とスレに来れない
0818デフォルトの名無しさん
垢版 |
2020/03/27(金) 19:23:18.41ID:KPP4IN2D
おまえの馬鹿さを指摘してやってるだけなのに
どう解釈したら勘違いしてるって思えるのか低能すぎてこえーわ
バカのくせに開き直って妄想で捏造書き込むキチガイもほどほどにしとけゴミカス低能
どんだけ根にもってんだキチガイ

>一応だけどクラス変数はインスタンスを作らなくても使用できる変数で
もっかい書いてやるけどつかえねーから馬鹿
0819デフォルトの名無しさん
垢版 |
2020/03/27(金) 19:29:26.82ID:KPP4IN2D
アンロード君
classNotFound君
同期化君
インスタンス作らなくても変数が使えちゃう君


全員入門書レベルのゴミがなぜか捏造して叩いてくるんだよな
ほんまキチガイの巣窟すぎてやべーわここ
英語も読めないプログラム全般の基本的な動作も理解してないゴミ糞低能の分際で
「おまえは勘違いしてる!(キリィイイイ!」とかわけのわからん馬鹿捏造解釈で
延々と叩くことしかできないキモさはお隣の国そっくりやな
バカチョンコミュニティかここは?ん?
0820デフォルトの名無しさん
垢版 |
2020/03/27(金) 19:32:13.94ID:KPP4IN2D
変数がどうたらとかくだらなすぎて書く気すら失せるから
ほぼほぼスルーしてたんだけど黙ってたら延々と言って来るからな低能って
ほんとゴミにはしっかり言ってやらんとダメだと再認識したわ
0827デフォルトの名無しさん
垢版 |
2020/03/27(金) 22:27:47.79ID:KPP4IN2D
だからなに?いつ同じって言った?ん?
違ってもインスタンスなくても使える?は?アホ
一人でわけの分からんこと言って勝手に決めつけて
まともな文章も書けないしもう回れ右しとけ低能
まぁ学生だろうけどまともな文章書けるようになってから出直せアホ
0828デフォルトの名無しさん
垢版 |
2020/03/27(金) 22:30:23.92ID:KPP4IN2D
それにしてもどうやったらこんな馬鹿なことを
延々と喚けるのかアホの頭はホントハッピーセットすぎてやべーわ
0831デフォルトの名無しさん
垢版 |
2020/03/27(金) 22:33:53.01ID:KPP4IN2D
アホ「クラス変数はインスタンスなくても使える!」
聖者ワイ「アホ君、変数っていうのはね中身入ってないと使えないよ」

アホ「こいつはクラス変数とインスタンス変数が同じと思ってる!(キリィイイイ」
聖者ワイ「何言ってんだこの馬鹿・・・」


ほんとキチガイは意味不明過ぎてヤバいね
0832デフォルトの名無しさん
垢版 |
2020/03/27(金) 22:36:49.47ID:129r78Sa
>>831
変数に中身が入ってるかの話を僕がしてないのはわかりますよね
わかってなかったのを僕は許します
その上でクラス変数とインスタンス変数は違いますよね?
0833デフォルトの名無しさん
垢版 |
2020/03/27(金) 22:41:39.70ID:KPP4IN2D
>変数に中身が入ってるかの話を僕がしてないのはわかりますよね
エスパーじゃないんだからお前の低能な頭の中をみんなが理解してたら凄いことだね

いいかい、アホ君。変数というのはね、中身があって初めて”使える”っていうんだよ
おまえの脳内設定の意味のわからん”使える”は万人に適用できないんだよ
わかるかい?アホ
こんなアホ理論が通用するのは学生のうちだけだからよく覚えておけよ糞アホ君
0834デフォルトの名無しさん
垢版 |
2020/03/27(金) 22:44:13.08ID:KPP4IN2D
そして違うとか違わないとかこれまた意味の分からん比較の話に飛ぶのも
キチガイ脳すぎて相当ヤバいよアホ君
脳専門の病院に行ったほうがいいよマジで
■ このスレッドは過去ログ倉庫に格納されています

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