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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/03/09(土) 23:59:15.92ID:ACok0wnJ
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.8
http://mevius.5ch.net/test/read.cgi/tech/1528370228/
2019/03/27(水) 06:22:28.73ID:VcZxW+M/
('仄')パイパイ
2019/04/09(火) 17:21:52.11ID:WcUdn8Y0
(1)
while (threadState == true) {}

(2)
while (threadState == true) {
System.out.print("");
}

マルチスレッドで、他のスレッドが threadState を変更するのを待ちたいのですが、(1)だとループを抜けてくれませんが、(2)なら抜けます。
何が悪いんでしょうか?
4デフォルトの名無しさん
垢版 |
2019/04/09(火) 17:29:01.76ID:xq+Mg1lA
>>3
その変数の宣言はどうなってる?
5デフォルトの名無しさん
垢版 |
2019/04/09(火) 17:38:46.23ID:WcUdn8Y0
>>4
boolean threadState;
クラス変数です。
この変数を変更する別スレッドも内部クラスです。
6デフォルトの名無しさん
垢版 |
2019/04/09(火) 18:13:44.59ID:xq+Mg1lA
>>5
volatile 付けるとどうなる?
7デフォルトの名無しさん
垢版 |
2019/04/09(火) 18:28:46.46ID:WcUdn8Y0
>>6
それでうまく行きました。ググったらコンパイラの最適化の問題とかみたいですね。
本当にありがとうございました。
8デフォルトの名無しさん
垢版 |
2019/04/09(火) 20:54:29.66ID:xq+Mg1lA
>>7
ああ。でもマルチスレッドでの同期については単純なのならそれでも良いけど本当ならちゃんとロックした方が良い事はお忘れなく。

少なくとも今のプログラムだと変数の内容が変わるまでずっとルーブするので効率が悪い。
他から起こされるまで眠るみたいな方式の方が本当に何もしない状態になるので効率は良い。
9デフォルトの名無しさん
垢版 |
2019/04/21(日) 19:40:38.40ID:rH04a7Av
スレチならすいません。
以前からスマホアプリを作ってみたいなとおもってまして、この度PCを購入しました
のでもってまずはプログラミングの代名詞でもあるjavaを習いたいと思いandroid studio をダウンロード、インストールしたのですが、
アプリが立ち上がりません。。

どなたかこの原因がわかる方いませんか?

↓エラーメッセージ
Error launching Studio
Failed to load JVM DLL C:\Program Files\Android\Android Studio\jre\jre\bin\server\jvm.dll

if you already have a 64-bit JDK installed, define a JAVA _HOME variable in Computer > System Properties > System Setting > Enviroment Variables.


↓PCのスペック
win 10
Corei7
RAM 8G
OS 64ビット
10デフォルトの名無しさん
垢版 |
2019/04/22(月) 01:40:27.90ID:x8/JvOWt
JVMのDLLの読み込みが失敗しました
64-bit JDKインストールされてるなら環境変数JAVA_HOMEを設定してください

ってことなのでJavaをインストールして環境変数を設定したらok
11デフォルトの名無しさん
垢版 |
2019/04/22(月) 01:56:13.24ID:8zvml5Ya
>>10
ご回答ありがとうございます。
私もそう思ってJDKをインストールして環境変数(JAVA_HOME)を通してみたのでしたが、同じエラーメッセージが表示されました。
パスが間違っているのかわからないんですが、JDKのインストール先とAndroid Studioのインストール先が違うと動かないのでしょうか?
JDKをどこかのファイルと同じ階層に置かないと起動しないというのはありますでしょうか?
12デフォルトの名無しさん
垢版 |
2019/04/22(月) 07:26:20.66ID:x8/JvOWt
>>11
パスが正しいかはコマンドプロンプトで実行してみればわかるかと
"%JAVA_HOME%\bin\java.exe" -version

所定の場所にJDKをインストールしないといけないなら
JAVA_HOMEを設定する必要ないんでそういうことはないと思うよ

64bitならstudio64.exeを起動しましょうとかあるんで
そのへんじゃないかな
13デフォルトの名無しさん
垢版 |
2019/04/22(月) 20:58:57.68ID:8zvml5Ya
>>12
解決しました。
studio64.exeでした
いやはやお恥ずかしい・・

ありがとうございます
14デフォルトの名無しさん
垢版 |
2019/04/23(火) 05:21:17.14ID:dZlKsmD/
昔今より更に素人だった頃自分のパソコンにjavaの実行環境を作った事があって、そしてまた走らせてみようと思ってさっきVScodeで実行してみたら上手く行った。
ここまではいいんだけど多分今入ってるのがSEだからEEに取り替えたい。
環境変数の変更からファイルの交換までどうすればいいか誰か教えてくれない?
一応VShomeのjava.homeっていう所は"C:\\Program Files\\Java\\jdk1.8.0_161"みたいなんだけど
15デフォルトの名無しさん
垢版 |
2019/04/23(火) 06:10:09.74ID:dZlKsmD/
とりあえずjava_ee_sdkっていうのはDL&解凍したけど今パスの方にあるjava_homeの参照先はjdkなんだよね
でも調べるとsdkにjdkが入ってるみたいなことが書いてあるからsdkと書いてあるフォルダをjava_homeに設定したら駄目だった
どこにjavaEEのjdkがあるの?
16デフォルトの名無しさん
垢版 |
2019/04/28(日) 12:34:42.35ID:hq3/I6v+
どなたか教えてください。。。
未経験で今新人研修してます。。。

【 課題 】Javaでタイピングゲーム作成
      https://dotup.org/uploda/dotup.org1832355.png
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】4. 制限なし
【 期限 】2019/05/05
【 Ver  】javac 1.8.0_131
2019/04/28(日) 12:48:45.95ID:FKjutIP9
>>16
どこまでやったのかも書き込んで下さい
18デフォルトの名無しさん
垢版 |
2019/04/28(日) 13:05:16.13ID:hq3/I6v+
>> 17
すみません
私未経験でメソッドとか配列とかチンプンカンプンなので、
コンパイルエラーなのですが、進捗はこちらです。。
1) https://dotup.org/uploda/dotup.org1833185.png
2) https://dotup.org/uploda/dotup.org1833187.png
3) https://dotup.org/uploda/dotup.org1833188.png
19デフォルトの名無しさん
垢版 |
2019/04/28(日) 14:07:36.96ID:Sci+vZGC
>>18
エラーの内容を教えてもらえれば
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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