- 1 名前:デフォルトの名無しさん mailto:sage [2016/10/17(月) 21:15:23.40 ID:3TSUYd8+.net]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 (p)ttp://www.wikiroom.com/java/?path,classpath ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 ・String に == は使うな。equals() を使え。※ 質問時の心得 ・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。 ・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。 前スレ ★★Java質問・相談スレッド178★★ [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1466119015/
- 369 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:05:00.66 ID:NJpH4t/4.net]
- >>361
> Java設計者が実装コストに見合ったリターンがないという判断をしただけ その判断をした経緯を見ることができるサイトありますか? 書籍なら書籍名を教えてほしいです
- 370 名前:デフォルトの名無しさん [2016/12/29(木) 16:31:49.50 ID:1pBIOXSt.net]
- interfaceがデータメンバー持てたらただの多重継承と一緒になるじゃん。
なぜJavaが多重継承を禁止してるかを調べた方がいい
- 371 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:35:12.28 ID:ICm4kcbN.net]
- >>363
フィールドも宣言と実装を分ければいい話
- 372 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:36:06.13 ID:+/EAw155.net]
- インターフェースは多重継承できるんだぜ
普段使わないけどな
- 373 名前:デフォルトの名無しさん [2016/12/29(木) 16:42:38.39 ID:1pBIOXSt.net]
- >>364
そうする事に何か意味あんの?
- 374 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:49:31.22 ID:k+96c2nT.net]
- >>365
あれってjava8のmapメソッドとかの互換残すためだっけ・・・ 拡張メソッドを実装するとか、Java8ListみたいなListインターフェイスを継承したインターフェイス作るとか何か方法はあったと思うけどな
- 375 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 21:51:19.05 ID:30kHN7oe.net]
- C++では、多重継承・ダイヤモンド継承がある
P ← A P ← B 親クラスPを継承したクラス、A, B を同時に継承すると、 Pのメンバ変数の部分が、2重に確保される P.x があるとき、A.x, B.x でアクセスすると、異なるメンバ変数になってしまう。 結局、多重継承はややこしいから、多くの言語で禁止された インタフェースでは、メンバ変数を持たないから、こういう問題は起きない
- 376 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 23:12:51.66 ID:ICm4kcbN.net]
- >>368
理解が甘い。 それだけの理屈だとメソッドもインターフェースに宣言できなくなっちゃうぞw インターフェースで多重継承の問題が回避できる理由は、 インターフェースのメソッドは宣言のみで実装を持たないので、 継承階層上で同一のインターフェースがいくつ重複して継承されてようが 最終的にメソッドの実装は一つだけになるから。 そして、君はフィールドの宣言と実装は不可分であるという前提を暗に設けているけど、 C/C++のようにフィールドの宣言と実装を分離できる言語も存在する。 Javaがそうしなかったのは「そう判断したから」に過ぎない。
- 377 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 23:15:56.04 ID:y5tb/iei.net]
- >>369
全然違う メソッドは上書きして消してしまえばいいが、データだと面倒
- 378 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 23:23:19.66 ID:uVQYMOXa.net]
- くだらねー言い争いの様相を呈してきたからそれ以上はここでやるなよ
でないと殺すぞ
- 379 名前:デフォルトの名無しさん [2016/12/30(金) 00:51:34.31 ID:h6FEfUa+.net]
- >>363
土方に多重継承が使いこなせるわけないやろ。
- 380 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 01:10:45.64 ID:zRXiBWIE.net]
- scalaのミックスイン好き
- 381 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 07:30:07.75 ID:rm5LlQ1U.net]
- 1日10レスもつかないこのスレでちょっとした議論を目の敵にするとかw
- 382 名前:362 mailto:sage [2016/12/30(金) 19:09:43.37 ID:OiZO02Sd.net]
- 出典を知りたかったんですがご教示いただけませんか
- 383 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 20:26:08.40 ID:xy7ekZk9.net]
- 実装コストというより、javaは混乱の原因になる構文は制限している
C#の場合条件付きでポインタ使えるけどjavaは使えなかったりするし
- 384 名前:デフォルトの名無しさん [2016/12/31(土) 00:38:21.18 ID:DQemjRmJ.net]
- PとかAとか書かれるとPPAPが思い浮かんでしまう
- 385 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 09:01:04.95 ID:EtOYLbeq.net]
- I have a jvm I have a func lang ah scala.
- 386 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 15:43:25.44 ID:nUjD4DbZ.net]
- JavaScript死亡www
「WebAssembly」がITの未来に変革もたらす|Google、Apple、Microsoft、Mozillaが共同で開発した新概念 「WebAssembly」がWebブラウザに変革をもたらします。 Webブラウザは、もともとただテキストを表示するだけのところから始まりました。その出発点から、現在ではコミュニケーションやゲームまで幅広い表現を可能にしています。 そして今回、「Webブラウザ」に新しい概念が加わわることになりました。 それをもたらしたのが、ブラウザに関わりの深い世界規模の4社「Google」「Apple」「Microsoft」「Mozilla」が共同開発した、Webのためのバイナリーフォーマット「WebAssembly」です。 今回はその「WebAssembly」について、「スゴイところって何?」「何が起きるの?」をご紹介していきます。 WebAssemblyは「JS不要。コンパイラ言語だけで動的アプリが作れる」「どの言語でもWebブラウザ上にアプリを作ることができる」 WebAssemblyによってもたらされるスゴイところは次の4つ。 コンパイラ言語だけで、Webブラウザ上に動的なアプリが作れる ほぼ機械言語にコンパイルされるからヌルヌル動く OSを一切気にする必要がなくなる。気にするのはブラウザのみ C,C 以外の言語でもWebAssemblyにコンパイルされる「クロスコンパイラ」の可能性が高まった これまでWebブラウザで、ユーザからの入力情報を元に、動的なアプリケーションを実現するためには「JavaScript」が必須でした。 「インタプリター言語」であるJavaScriptは、その都度ソースコードを機械語に翻訳する必要があるため、予め機械語に近くコンパイルされる「コンパイラ言語」と比較すると動作が遅いという特徴があります(※)。 もしコンパイル後の機械語に近い形で、Webブラウザ上でコードが実行されたら。 JavaScript以上にヌルヌルに動き、しかもJavaScriptを気にする必要がなくなります。 それを実現したのがこの「WebAssembly」です。 https://mayonez.jp/1690
- 387 名前:デフォルトの名無しさん [2016/12/31(土) 16:54:48.15 ID:jwzq842l.net]
- >>379
Java Applet と考え方は同じようなものかな。 車輪の再発明ではあるが大幅に改良された感じか。
- 388 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 16:59:14.04 ID:+2KPTl74.net]
- 結局クライアントリソースにアクセスできるかどうかなんだよなー
- 389 名前:デフォルトの名無しさん [2016/12/31(土) 17:06:49.14 ID:jwzq842l.net]
- あー。まあ、どの程度アクセス可能にするかは設定次第になるんじゃないかな。
しかしとにかくクライアント側で仮想マシンが動いてその中にもストレージのようなプログラムが終わっても記憶する何かがあればかなりの事はできそうな感じがする。 しかし>>379の記事書いた人はこれまでの歴史的なことはよく知らなかったようだな。 既にJavaAppletという形であると言えばあるんだが時期尚早で失敗して死んだだけだ。
- 390 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 17:58:54.03 ID:7BahRXzq.net]
- WebAssemblyはブラウザ組み込みのスクリプティング言語が一つ増えるだけ
特に何か新しいことができるようになるわけじゃないよ 他の言語で書かれたコードをjsに変換してブラウザで動かすというのは以前から行われていたけど、 jsの構文解析のコストやデータ型の不備などのためパフォーマンスが悪かった だからバイトコードにしてデータ型も増やした そ れ だ け
- 391 名前:デフォルトの名無しさん [2016/12/31(土) 18:27:45.64 ID:jwzq842l.net]
- そういやjsでPCの仮想マシン動かしてそこでLinux動かしてるの前に見たことあるなあ。
PCは速くなったもんだと思った。
- 392 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 19:37:40.97 ID:RP5GqFRc.net]
- >>383
C++ とか C# で組めると言うのは嬉しいけどライブラリとかどうなるん? .NetFramework 丸抱えって言うわけにもいかんだろうし
- 393 名前:デフォルトの名無しさん [2016/12/31(土) 19:41:11.00 ID:jwzq842l.net]
- やっぱなんか仮想のOSがあることにしてそこcallするのかな?
- 394 名前:デフォルトの名無しさん [2016/12/31(土) 19:42:27.48 ID:CS9EEzAV.net]
- 2NsOdIiQへの反論
そのオブジェクト指向の構造も突き詰めれば if() for() while() を使用した基本構造からな成り立っている。 各言語や、ライブラリ毎に別々の名前別々の文法が定義され 言語や仕様が変われば、その「名前」や文法は毎回覚えなければ ならない。それらが滞りなく動くには、それなりに繋げなければ、 ならないし
- 395 名前:、「繋げる」ためには細かくて複雑で、なおかつ
時と共に変化しやすいルールを沢山覚えなければならない。 それは仕様やルールに支配されている状態と言えるだろう。 それらも大切じゃないわけではないと思う。だけど 2NsOdIiQの意見にはは真っ向から批判したいと思う。 [] - [ここ壊れてます]
- 396 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 19:43:04.91 ID:CS9EEzAV.net]
- 投稿スレを間違えました。すみません。
- 397 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 20:59:14.55 ID:u4bGwJtr.net]
- >>385
どうもならんよ 最終的に描画や入出力のところはHTML/JSのAPIを使って実装するの
- 398 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 22:41:45.07 ID:DQemjRmJ.net]
- >>384
getnews.jp/archives/437194
- 399 名前:デフォルトの名無しさん [2017/01/02(月) 21:19:29.65 ID:o3nId1EF.net]
- クラスローダーで動的にクラスロードできるという話があるけど
クラスAのメソッドを実行中にクラスAが再ロードされて定義変わったらどうなるの? 実行が終わるまで待つ?それともグロテスクにメソッドの途中でも切り替わるの?
- 400 名前:デフォルトの名無しさん mailto:sage [2017/01/02(月) 21:52:30.67 ID:CPceoiNS.net]
- >>391
使用中のクラスはアンロードできない
- 401 名前:デフォルトの名無しさん [2017/01/02(月) 21:56:39.01 ID:o3nId1EF.net]
- 使用中てスレッドが実行している対象になってるということ?
じゃあ終わるまで待つってことか
- 402 名前:デフォルトの名無しさん mailto:sage [2017/01/03(火) 10:10:53.52 ID:0B5i9Ebo.net]
- 普通は新しく別のクラスローダ使ってそっちで実行するようにして
古いクラスローダでは新たな処理させないようにする。
- 403 名前:デフォルトの名無しさん [2017/01/03(火) 19:31:47.50 ID:6nszIHXf.net]
- Javaで特定のクラスの全インスタンス一覧を取得する方法は?
- 404 名前:デフォルトの名無しさん [2017/01/03(火) 20:20:03.91 ID:q0Juw9L/.net]
- >>395
無い
- 405 名前:デフォルトの名無しさん [2017/01/03(火) 21:33:59.07 ID:6nszIHXf.net]
- でもJVMはガベージコレクションするなら管理してるはず
取得できないの?
- 406 名前:デフォルトの名無しさん mailto:sage [2017/01/03(火) 22:36:53.27 ID:VxAvtnd0.net]
- デバッガ用のAPIを使えばできるはずだけど
そんなことするよりコンストラクタでthisに対するWeakReference作ってどっかに登録しとく方が100万倍簡単
- 407 名前:デフォルトの名無しさん mailto:sage [2017/01/04(水) 08:01:18.20 ID:SBIBjCGJ.net]
- >>397
クラスから各インスタンスへの参照を保持してるgcなんて聞いたことないぞ。
- 408 名前:デフォルトの名無しさん mailto:sage [2017/01/04(水) 09:31:14.85 ID:lSpX1J+l.net]
- そもそもそんな事が必要となっている時点で設計がどこか間違っていると思うけどな
- 409 名前:デフォルトの名無しさん mailto:sage [2017/01/04(水) 09:35:44.24 ID:P9CxkEKM.net]
- >>399
頭使えよ VM内の全インスタンスを舐めることは可能でないとおかしいから 全インスタンスから特定のクラスのインスタンスであるものだけをフィルタすればいいだろ 実際JDIには特定のクラスの全インスタンスを取得するメソッドがある
- 410 名前:デフォルトの名無しさん mailto:sage [2017/01/05(木) 12:38:48.94 ID:NVITWkub.net]
- jsoupってリクエストヘッダのhttponlyなset-cookieって取得できる?
- 411 名前:デフォルトの名無しさん mailto:sage [2017/01/05(木) 12:39:32.53 ID:NVITWkub.net]
- まちがえたレスポンスヘッダ
- 412 名前:デフォルトの名無しさん mailto:sage [2017/01/05(木) 20:47:02.76 ID:Dua5hrmJ.net]
- >>402
Connection.Response#cookie()で取れるんじゃないの?
- 413 名前:デフォルトの名無しさん mailto:sage [2017/01/05(木) 20:48:26.91 ID:Dua5hrmJ.net]
- 実際にはHttpConnection.Response#cookie()なのかな
- 414 名前:デフォルトの名無しさん mailto:sage [2017/01/06(金) 02:12:14.55 ID:fLo719uv.net]
- >>404
まじかサンキュー
- 415 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 16:41:35.76 ID:3K1tpc29.net]
- 選択したhtmlファイルの文字列をswingでつくったツール上に表示させたいんだけどどうすればできる?
htmlのパーサはjsoupを使っている
- 416 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 16:45:32.99 ID:w01jaJnp.net]
- HTMLファイルはそのままで表示ができるが
javax.swing.JEditorPane クラス
- 417 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 16:49:20.19 ID:w01jaJnp.net]
- 自分でレンダリングするのは難しそう
news.mynavi.jp/articles/2007/04/27/webrenderer/
- 418 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 17:01:10.12 ID:3K1tpc29.net]
- >>408
htmlのまま表示させるんじゃなくて
- 419 名前:カ字列だけを抜き出して表示させたいんだ []
- [ここ壊れてます]
- 420 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 17:13:32.98 ID:w01jaJnp.net]
- その通りやれば
- 421 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 17:21:43.04 ID:apvQMz4T.net]
- >>407が言う文字列とは何を指すのか
- 422 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 17:46:31.57 ID:w01jaJnp.net]
- 自分が何をやりたいのか言葉に書けないレベルなのだからほっとけ
- 423 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 18:00:18.94 ID:3K1tpc29.net]
- 学校の課題だからあんま詳しくかいたら駄目かなと思っただけなんだけど
やりたいことは 単体テストの結果を出力したhtmlファイルと、もとのjavaファイルに変更を加えた後にさっきかいたhtmlファイルの内容を期待出力にした回帰テストの結果を出力したhtmlファイル この2つのhtmlファイルの文字列をツール上に表示させてかつ相違がある箇所をハイライトしたい
- 424 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 18:13:44.86 ID:w01jaJnp.net]
- 自分でやれ、今までのレスは無し
- 425 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 18:16:39.88 ID:3K1tpc29.net]
- まぁそりゃそうだわな
ありがとう
- 426 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 21:12:20.05 ID:21kcp9Ol.net]
- 別に全部教えろって言ってるわけじゃないんだろうしちょっとくらいアドバイスやってもいいと思うけどな
jsoupは使ったことないけどパーサがあるなら普通にstring型で出力すればいいんじゃないの?
- 427 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 22:55:57.29 ID:EMY/V/Hn.net]
- ArrayList<Integer> a;
ArrayList<Integer> f() {return a;} List<Integer> g() {return a;} // OK List<Object> h() {return a;} // ダメ いつからこのg()みたいなのおkになったの? ジェネリクスの変性どうのというよりこれは単に Derived d; Base g() {return d;} っていう風にとらえるだけのことで 実型パラメータ(一個目の例でのInteger)は無視しておkなの?
- 428 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 23:12:50.86 ID:4lT0hUL1.net]
- >>418
そうじゃなくて、型引数のIntegerを含めて Derived と Base の関係なんだよ ArrayList<E> は List<E> を実装しているので、 E を Integerで特殊化した ArrayList<Integer> は List<Integer> を実装していることになる
- 429 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 23:22:43.32 ID:D5DrwE40.net]
- >>417
アホ担当に命ずる、頑張ってね
- 430 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 23:36:30.44 ID:BeSWRGfA.net]
- >>419
ありがとうございます! 激分かりやすかったす!
- 431 名前:デフォルトの名無しさん [2017/01/08(日) 08:55:52.77 ID:zIZ7V1fq.net]
- コンソルに以下のように出力させたいです。
ttp://pastebin.com/3p6kxw4D ソースは以下にあります。 ttp://pastebin.com/S1vbuyaG // dont select the current item and proceed next for (int i = 0; i < names.size(); i++) { System.out.print(
- 432 名前:デフォルトの名無しさん [2017/01/08(日) 08:59:30.89 ID:zIZ7V1fq.net]
- }
何故か途切れた。 上記の処理が表示の要因なのですが、どうやったら階段見たく表示されるのでしょうか? 以上、よろしくお願いいたします。
- 433 名前:デフォルトの名無しさん mailto:sage [2017/01/08(日) 13:23:22.35 ID:J5aNntpx.net]
- >>423
String.formatでぐぐる
- 434 名前:デフォルトの名無しさん [2017/01/08(日) 21:06:09.52 ID:Bubf9Yrg.net]
- サーブレット/JSPの勉強中なんですが、マルチスレッドを意識するとどういう設計・実装をするべきか分からなくなります。
とりあえずクライアント1台では正常に動いてるんですが、スレッドセーフなのかどうなのか自信が持てません。 ガイドラインや設計の資料があれば教えてください。
- 435 名前:デフォルトの名無しさん mailto:sage [2017/01/08(日) 21:10:25.10 ID:6Rfsv7h0.net]
- >>425
初心者はスレッドセーフかどうかを心配する必要があるような設計をしてはいけない DBとローカル変数以外は使うな
- 436 名前:426 mailto:sage [2017/01/08(日) 21:21:20.77 ID:6Rfsv7h0.net]
- 誤解のないように言っておくと、参照のルートは必ずローカル変数でなきゃいけないという意味ね
クラスのインスタンスを作って使うのは構わないが、リクエストをまたがって保持しようと考えてはいけない
- 437 名前:デフォルトの名無しさん mailto:sage [2017/01/08(日) 22:17:11.61 ID:c5pY166L.net]
- >>422-423
2chのバグだろう 書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。 " の代わりに、\" とエスケープすれば、どうだろう? それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった >>425 素人がマルチスレッドなんて、何十年も早い。 Rubyを作った、まつもとゆきひろでさえ、やったことないのに マルチスレッドで共有変数があれば、即終了!
- 438 名前:デフォルトの名無しさん [2017/01/09(月) 20:32:39.79 ID:bKumwacY.net]
- 何十年ってこたなかろうw
- 439 名前:デフォルトの名無しさん mailto:sage [2017/01/10(火) 07:57:30.67 ID:btyz1q/N.net]
- ローカル変数のStringBuilderを全部StringBufferに書き換えてる奴を見て、なんかげんなりしたことあるよ
- 440 名前:デフォルトの名無しさん mailto:sage [2017/01/10(火) 08:13:39.45 ID:anKjrvQ4.net]
- スレッドセーフという言葉が独り歩きしてるんだよなあ
スレッドセーフはアプリ全体として結果的に実現されるもので、 細かい操作やメソッドがそれ単独でスレッドセーフかどうかというのはあまり意味がない StringBufferのappendメソッドがスレッドセーフでもsb.append(…).append(…)はスレッドセーフじゃないんだから Java初期のスレッドセーフ信仰が生んだ悪習
- 441 名前:デフォルトの名無しさん mailto:sage [2017/01/10(火) 08:36:52.77 ID:duWLWLTR.net]
- 誰もレビューでガツンと言ったらんからそういうことになる
必要のないnull代入とかカーゴカルトプログラミングそのもの
- 442 名前:デフォルトの名無しさん mailto:sage [2017/01/10(火) 09:20:04.28 ID:z7ojWcoj.net]
- スレッドセーフという言葉が良くないよな
実際以上に安全安心な印象を与える 単に「直列化されている」とかでいいのに
- 443 名前:デフォルトの名無しさん mailto:sage [2017/01/10(火) 09:47:13.45 ID:a7VQBoIR.net]
- 直列化はJavaの公式ドキュメントがシリアライズの訳語として使ってるから無理じゃね?
- 444 名前:デフォルトの名無しさん mailto:sage [2017/01/10(火) 12:26:54.61 ID:100jHo+a.net]
- 順番待ちか
- 445 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 08:48:34.11 ID:Adq7JLti.net]
- 排他してなくても結果的に直列化されてるように見えれば問題ないわけだから、一番適切なのはDB用語のserializableかなあ
Javaだとシリアライズと被るから無理だけど
- 446 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 09:53:08.77 ID:Knkf8nBH.net]
- Mutexとか
- 447 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 11:13:29.01 ID:qHX7/jxt.net]
- class Global {
static Object lock = new Object(); } class CL { void f() { synchronized (Global.lock) { } } } こういうグローバルなオブジェクト用いて排他制御ができるということだけど どんなときでもこのGlobalクラス作っておけばスレッドセーフが作れるという認識で良い? 「おまじない」という認識で良い?
- 448 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 12:37:52.68 ID:LZHP+E6Z.net]
- お前はプログラミングするな
- 449 名前:デフォルトの名無しさん [2017/01/11(水) 12:47:25.22 ID:2fyLF58e.net]
- おまじないするな
- 450 名前:デフォルトの名無しさん [2017/01/11(水) 14:50:57.49 ID:hzMZkzGq.net]
- >>438
lockオブジェクトはMutexの役割で使うので、排他したいリソースをsynchronizedブロック内で使えばいい 問題なのは実現の仕方ではなく使いどころ 例えば3個のリストを個々に排他したいけど、リスト間では排他する必要がないのであれば、 synchronized(list1) { } synchronized(list2) { } みたいに排他したいオブジェクトのMutex lockを取得(実際にはMoniterの取得)すればいいのでグローバルのlockObjectを用意する必要はない ただ、先の書き込み内容からしてもう少し勉強してから使ったほうがいいと思いますよ
- 451 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 14:57:57.65 ID:0dcMUO4e.net]
- 排他は必要なところに必要なだけすればいいよ
逆に言うとそれを把握せずにぼんやり スレッドセーフだの何だのやっても無意味
- 452 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 20:56:40.05 ID:9JRTsez2.net]
- Javaはスレッドに頼りすぎ
Javaの外に目を向けると、近年は非同期IOと継続渡しを活用してシングルスレッドで作るスタイルが流行り せっかくJavaにもラムダが入って継続が書きやすくなったことだし、Javaでも非同期プログラミングが普及すればいいのに
- 453 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 21:16:47.74 ID:0B2zc1Af.net]
- parallelストリームは便利だよねCPU100%にしたい人向け
- 454 名前:デフォルトの名無しさん [2017/01/11(水) 21:40:13.25 ID:N/Vxl167.net]
- akka良いよ
- 455 名前:デフォルトの名無しさん [2017/01/12(木) 09:30:07.93 ID:us5ONQNv.net]
- いやしかしマルチスレッドはあると便利だよ。非同期入出力でもメインの処理の邪魔をせずに裏でバッファから送信だのバッファに受信だのできるしね。
まあ、そういうのがほとんどないGUI画面で人間との対話ばかりならあまり必要ないかも知れないけどね。人間は一度に一つの事しかできないから。 ゲームとかだマルチスレッドで書いた方が楽になるのはあるかな?
- 456 名前:デフォルトの名無しさん mailto:sage [2017/01/12(木) 09:38:52.01 ID:2R6CrnF4.net]
- イベント処理で全部済むならnginxが裏でワーカースレッド8個とか16個とか持ってるのはなぜ
- 457 名前:デフォルトの名無しさん mailto:sage [2017/01/12(木) 09:43:22.06 ID:gDCHiAoV.net]
- >>447
マルチプロセスで全部済むならインプロセスのマルチスレッドなんていうデリケートな仕組みを使う必要はないだろ 済むかどうかはケースバイケースだけど
- 458 名前:デフォルトの名無しさん mailto:sage [2017/01/12(木) 09:46:01.67 ID:RGf+hnFO.net]
- GUIでマルチスレッド普通に使うだろ
何か処理要求するごとにウィンドウ全体が固まるとかクソアプリじゃん
- 459 名前:デフォルトの名無しさん [2017/01/12(木) 10:33:11.00 ID:us5ONQNv.net]
- その処理が終わってからでないと次の処理ができない場合はマルチだったとしてもせいぜい「しばらくお待ちください」出すぐらいのものだ。固まってんのと同じ。
- 460 名前:デフォルトの名無しさん mailto:sage [2017/01/12(木) 12:26:58.59 ID:gDCHiAoV.net]
- 非同期プログラミングならユーザーコードがシングルスレッドでも固まらないよ
Ajaxなんかリクエストの最中に固まったりしないでしょ プログラミングモデルとしてマルチスレッド&同期モデルと継続&非同期モデルのどちらが優れてるかどうかは自分で判断すればいいけど、 さすがに今時知らないのはヤバイぞ
- 461 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 08:17:11.76 ID:NQh6x04N.net]
- >>450
途中でキャンセルもできない糞アプリ作んな >>451 非同期なんてそれしか使えない時にやむを得ず使うもんだよ 知らないのは無知だと思うがむやみやたらに使うのはバカ
- 462 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 08:26:17.63 ID:NMRw63WY.net]
- >>452
おまえ個人の開発ポリシーを他人に押しつけないで 迷惑だから
- 463 名前:デフォルトの名無しさん [2017/01/13(金) 08:41:31.37 ID:nVxQCvXm.net]
- 非同期タスクはマルチスレッドを使っての同期タスク実行の抽象度高めただけでしょ
非同期IOだって大抵のOSの非同期IO用システムコールのパフォーマンスは糞だからマルチスレッドで裏で同期IOで実行して非同期に見せかけてる。 抽象度が高いおかげで未熟なプログラマによるマルチスレッドでの間違い(データ競合など)を少なくする事ができるし、スレッド間でむやみに変数を共有させない事によって実装もシンプルになる。 長々書いたけどまとめると非同期タスクで済むことをむやみにマルチスレッドで実装する方がバカ
- 464 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 09:14:53.53 ID:WGrJXBVd.net]
- Javaは伝統的に「非同期APIなんか要らんスレッド使え」でやってきたから
今更移行するのは難しいだろうな Androidは非同期処理多いから移行しやすいだろうけど、サーバーが非同期になる日はなかなか来ないだろう
- 465 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 12:30:19.65 ID:NQh6x04N.net]
- >>453
個人の開発ポリシーだと思ってるところがバカっぽい w
- 466 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 12:34:33.36 ID:xEiCBlzV.net]
- >>456
あ、ごめん 即座に罵倒するようなヤツとは関わらないって決めてるので後は独りで勝手に盛り上がってください
- 467 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 13:06:07.65 ID:TryNDMwR.net]
- 自分が日頃使っている言語以外の一般常識を何も知らない奴がいるのは別にJavaに限ったことではないが、
VB厨やペチパーなんかと違ってJava屋は自分達がスタンダ
- 468 名前:ードだと信じてて自覚がない奴が多いから厄介 []
- [ここ壊れてます]
- 469 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 13:40:08.05 ID:7t+hNZnh.net]
- なんかあったのか?
|

|