CodeGym University
勉強
コース
タスク
アンケートとクイズ
ゲーム
ヘルプ
励ましのスケジュール
コミュニティ
ユーザー
フォーラム
チャット
記事
サクセスストーリー
アクティビティ
レビュー
サブスクリプション
ライトテーマ
レッスン
レビュー
会社紹介
開始
勉強を始める
今すぐ勉強をはじめる
クエストマップ
レッスン
すべてのクエスト
すべてのレベル
Javaメモリモデル
モジュール 3
レベル 18、
レッスン 2
Java メモリ モデルの概要 Java メモリ モデル (JMM) は、 Java ランタイム環境におけるスレッドの動作を記述します。メモリ モデルは Java 言語のセマンティクスの一部であり、特定の Java マシン用ではなく Java 全体用のソフトウェアを開発するときにプログラマが期待できることとすべきでないことを記述します。 1995 年に開発されたオリジナルの Java メモリ モデル (特に「パーコローカル メモリ」を指します) は失敗とみなされています。コー
Java のガベージ コレクション
モジュール 3
レベル 18、
レッスン 3
Java におけるガベージ コレクションとは何かを思い出してください。 ガベージ コレクションは、未使用のオブジェクトを破棄してランタイム メモリをすべて再利用するプロセスです。 場合によっては、プログラマが不要なオブジェクトを破棄するのを忘れ、それらに割り当てられたメモリが解放されないことがあります。ますます多くのシステム メモリが消費され、最終的にはそれ以上割り当てられなくなります。このようなアプリケーションは「メモリ リーク」の影響を受けます。 ある時点を過ぎると、新し
世代別ガベージコレクション
モジュール 3
レベル 18、
レッスン 4
オブジェクトの世代を操作する Java ガベージ コレクターは、オブジェクトを年齢ごとに分類できる世代別ガベージ コレクション戦略を実装します。 JVM におけるこのような必要性 (すべてのオブジェクトにマークを付けて圧縮する) は非効率的であると言えます。多数のオブジェクトが割り当てられると、それらのリストが増大し、ガベージ コレクション時間の増加につながります。アプリケーションの実証分析により、Java のほとんどのオブジェクトは存続期間が短いことがわかっています。 JV
Java のガベージ コレクターの種類
モジュール 3
レベル 18、
レッスン 5
シリアル GC ガベージ コレクションは、ヒープから未参照のオブジェクトを削除し、新しく作成されたオブジェクト用のスペースを確保することにより、Java のメモリ効率を向上させます。 Java 仮想マシンには 8 種類のガベージ コレクターがあります。それぞれについて詳しく考えてみましょう。 シリアル GC は最も単純な GC 実装です。これは、シングルスレッド環境で実行される小規模なアプリケーションを対象としています。すべてのガベージ コレクション イベントは、同じスレッド
Java でのガベージ コレクターの選択
モジュール 3
レベル 18、
レッスン 6
7.1* 適切なガベージ コレクターを選択する方法 アプリケーションに厳密なレイテンシー要件がない場合は、アプリケーションを実行するだけで、JVM 自体に適切なコレクターを選択させる必要があります。 ほとんどの場合、デフォルト設定で問題なく動作します。必要に応じて、ヒープ サイズを調整してパフォーマンスを向上させることができます。それでもパフォーマンスが期待どおりにならない場合は、アプリケーションの要件に合わせてコレクターを変更してみてください。 シーケンシャル。アプリケーシ
Java のジャンク リンク
モジュール 3
レベル 18、
レッスン 7
8.1 Java の弱い参照 Java にはいくつかの種類の参照があります。 StrongReferenceがあります。これらは私たちが毎日作成する最も一般的なリンクです。 Object object = new Object();//создал обьект
Java 同時実行ライブラリ
モジュール 3
レベル 19、
レッスン 0
フィールドがと宣言されているか、読み取り/書き込みの前に取得された一意のロックによって保護されている場合、フィールドの読み取り/書き込みはアトミック操作です。ただし、それでもエラーが発生する場合は、並べ替えに関するエラー (順序の変更、並べ替え) が表示されます。これは、誤って同期されたマルチスレッド プログラムに現れ、あるスレッドが他のスレッドによって生成された影響を観察することができます。
Java でのアトミック操作
モジュール 3
レベル 19、
レッスン 1
アトミック操作の出現の前提条件 アトミック操作がどのように機能するかを理解するために、この例を見てみましょう。 public class Counter {
同時収集
モジュール 3
レベル 19、
レッスン 2
CopyOnWriteArrayList 特定のコレクションに対するadd、set、remove の操作により、内部配列の新しいコピーが作成されます。これにより、ConcurrentModificationExceptionをキャッチしなくなります。 配列をコピーするときは、非スレッドセーフ要素のフィールドへのアクセスを含め、オブジェクトへの参照のみがコピーされることに注意してください。このようなコレクションは、書き込み操作の数が最小限の場合に最適です。 CopyOnWrit
同時キュー
モジュール 3
レベル 19、
レッスン 3
ノンブロッキングキュー リンクされたノード上のスレッドセーフで最も重要な非ブロッキングのキュー実装。 ConcurrentLinkedQueue - ガベージ コレクターと連携するように適応された待機なしアルゴリズムを使用します。このアルゴリズムは CAS 上に構築されているため、非常に効率的で高速です。size()メソッドは長時間実行される可能性があるため、常にプルしないことをお勧めします。 ConcurrentLinkedDeque - Deque はダブルエ
シンクロナイザー: Java でのリソースへのアクセスの同期
モジュール 3
レベル 19、
レッスン 4
セマフォ セマフォは通常、ファイル システムを操作するときにスレッド数を制限する必要がある場合に使用されます。ファイルまたはその他の共有リソースへのアクセスは、カウンターを通じて制御されます。その値がゼロより大きい場合、アクセスは許可されますが、同時にカウンターは減少します。 カウンタがゼロを返した時点で、現在のスレッドは別のスレッドによってリソースが解放されるまでブロックされます。アクセス許可パラメータの数は、コンストラクターを介して設定する必要があります。 コンピュータま
エグゼキュータ: 実行可能オブジェクト
モジュール 3
レベル 19、
レッスン 5
6.1 実行可能オブジェクト これで、パッケージの最大の部分に到達しました。Future インターフェイスと Callable インターフェイスを通じて結果を取得できる非同期タスクを実行するためのインターフェイス、およびスレッド プール (ThreadPoolExecutor、ScheduledPoolExecutor、ForkJoinPool) を作成するためのサービスとファクトリについて説明します。 理解を深めるために、インターフェースとクラスを少し分解してみましょう。
さらに表示
1
...
32
33
34
35
Please enable JavaScript to continue using this application.