検索
ホームページJava&#&はじめるマルチスレッドの 3 つの主な特徴は何ですか?

マルチスレッドの 3 つの主な特徴は何ですか?

Apr 27, 2020 pm 04:32 PM
マルチスレッド化特性

マルチスレッドの 3 つの主な特徴は何ですか?

マルチスレッドには、次の 3 つの主要な特徴があります:

原子性、可視性、秩序性

1. アトムとは何ですか? Nature

つまり、1 つまたは複数の操作が完全に実行され、実行プロセスがいかなる要因によっても中断されないか、またはまったく実行されません。

非常に典型的な例は、銀行口座振替の問題です。

たとえば、口座 A から口座 B に 1,000 元を送金する場合、口座 A から 1,000 元を引くという 2 つの操作が必要です。 、アカウント B に 1,000 元を送金します。アカウント B に 1,000 元が追加されます。予期しない問題が発生しないように、これら 2 つの操作はアトミックである必要があります。

i = i 1 など、データを操作する場合にも同じことが当てはまります。これには、i の値の読み取り、i の計算、i の書き込みが含まれます。このコード行は Java ではアトミックではないため、マルチスレッド操作は間違いなく問題を引き起こすため、この機能を保証するために同期とロックも使用する必要があります。

(ビデオ チュートリアルの推奨: java ビデオ )

2. 可視性とは何ですか

複数のスレッドが同じにアクセスするとき変数が変更され、1 つのスレッドが変数の値を変更すると、他のスレッドは変更された値をすぐに確認できます。

2 つのスレッドが異なる CPU 上にあり、スレッド 1 が i の値を変更してメイン メモリに更新せず、スレッド 2 が i を再度使用する場合、i の値は同じでなければなりません。スレッド 1 は変数とは何の関係もありません スレッド 2 が認識しなかった変更は、可視性の問題でした。

3. 順序性とは?

プログラムの実行順序はコードの順序で実行されます。

一般に、プログラムの動作効率を向上させるために、プロセッサは入力コードを最適化する場合がありますが、プログラム内の各ステートメントの実行順序がコード内の順序と一致していることは保証されません。ただし、プログラムが最終的に実行されることは保証され、その結果はコードの順次実行の結果と一致します。以下の通り:

int a = 10; //语句1
int r = 2; //语句2
a = a + 3; //语句3
r = a*a; //语句4

並べ替えにより、2-1-3-4、1-3-2-4 の注文も実行する可能性がありますが、2-1-4-3 は絶対に不可能です。この依存関係が壊れているためです。

明らかに、並べ替えはシングルスレッド操作では問題を引き起こしませんが、マルチスレッドでは必ずしも問題を引き起こさないため、マルチスレッドでプログラミングする場合はこの問題を考慮する必要があります。

推奨チュートリアル: Java の入門

以上がマルチスレッドの 3 つの主な特徴は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcsdnで複製されています。侵害がある場合は、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 プラットフォームで実行できます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター