検索
ホームページJava&#&チュートリアルハプニングビフォアについての詳しい紹介

プログラムを実行する際、プロセッサやコンパイラはパフォーマンスを向上させるために命令の順序を変更することがよくありますが、自由に順序を変更することはできません。次の 2 つの条件を満たす必要があります。単一命令 スレッド環境ではプログラムの実行結果を変更することはできません。 2. データの依存関係がある場合、並べ替えは許可されません。LZ の以前のブログを読んだことがある方なら、実際にはこれら 2 つの点が 1 つの要因であることがわかります。ポイント: 前発生の原則では推測できません。はい、JMM では任意の順序付けが可能です。 as-if-serial セマンティクス as-if-serial セマンティクスは、最適化のためにすべての操作を並べ替えることができることを意味しますが、並べ替え後の実行結果は変更できないことを確認する必要があり、コンパイラ、ランタイム、プロセッサのすべてが as-if- に準拠する必要があります。シリアルセマンティクス。 as-if-serial はシングルスレッド環境のみを保証し、マルチスレッド環境では無効であることに注意してください。簡単な例を使って説明します: int a = 1; プログラムを実行するとき、プロセッサとコンパイラはパフォーマンスを向上させるために命令を並べ替えることがよくありますが、それらを自由に並べ替えることはできません。以下の 2 つの条件を満たす必要があります: 1. シングルスレッドでプログラムの実行結果を変更できない環境であること。 2. データの依存関係がある場合は並べ替えが許可されていないこと。実際、これら 2 つの点は 1 つの点に起因すると考えられます。JMM では任意の順序付けが許可されているため、事前発生の原則では推定できません。 as-if-serial semantics as-if-se

2. 【Dead Java Concurrency】-----Java メモリ モデルは前に発生します

ハプニングビフォアについての詳しい紹介

はじめに: このブログ内([Fuck Java Concurrency] - volatile の実装原理の詳細な分析) LZ は、スレッドのローカル メモリとメイン メモリの存在と並べ替えが原因で、マルチスレッド環境では可視性の問題が発生すると述べました。それでは、同期とロックを正しく使用すると、スレッド A はスレッド B から見える変数をいつ変更するのでしょうか?スレッドによって変更された変数が他のスレッドに表示されるかどうかをすべてのシナリオで規定することはできませんが、このルールは JDK 5 以降、ha

3 を使用します。同期アルゴリズムの実践 (3) - 最新結果プロバイダー

ハプニングビフォアについての詳しい紹介

はじめに: この記事を送信してくれた trytocatch に感謝します。 はじめに この記事を読む前に、読者は事前発生についてよく理解し、ノンブロッキング同期のいくつかの基本概念を理解する必要があります。この記事は主に、前発生ルールの柔軟な適用、問題を解決するためのヒント、および問題の分析方法に焦点を当てています。 背景の紹介 本来の要件は次のとおりです: 私は定期的な置換ツールを作成していました

[関連する Q&A の推奨事項]:

Java メモリ モデルはセマンティック順序の問題の前に発生します

以上がハプニングビフォアについての詳しい紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境