ホームページ 毎日のプログラミング PHPの知識 「スレッド同期の原則」を理解するのに役立つ 2 つの例

「スレッド同期の原則」を理解するのに役立つ 2 つの例

Jan 19, 2021 pm 05:30 PM
1

複数のスレッド (またはプロセス) が、同じ特定の非リエントラント プログラム コード ブロック (クリティカル セクションと呼ばれる) を実行する必要があるため、適切な同時実行制御同期テクノロジが必要です。そうしないと、競合状態が発生する可能性があります。 ️リソース)の操作では、重要なリソースを保護し、一般的な使用時の混乱を避けるために、何らかの技術的手段を使用する必要があります。

簡単な例を挙げると、Alipay が @wanchai さんに ?1RBM を送金します。このとき、彼のウォレットにはすでに ?1RBM が送金されています。アカウントも同時に入力されるため、非スレッド同期システムは次の操作を実行します:

非スレッド同期の最終的なウォレット残高は 2 元ですが、これは明らかに間違っています。追加した後見てみましょう。スレッドの同期:

「スレッド同期の原則」を理解するのに役立つ 2 つの例

最後に、ウォレットの残高は 3 元です。 では、具体的な方法は何でしょうか?

「スレッド同期の原則」を理解するのに役立つ 2 つの例

ここでもっと一般的な例を使用することもできます:

「スレッド同期の原則」を理解するのに役立つ 2 つの例

最初はこの交差点に適していました。誰もが毎回満足しています。この交差点に行きますが、徐々にこの道路を知る人が増えましたが、誰もが無秩序に交差点を通過したため、ある日、道路施設の担当者が信号機を設置しました。この方向の青信号が点灯している場合、この方向の人々は前進できます

  • 一部の車両は、ここに来るときに必ずしも交差点を横断する必要はありません。 、だから責任を持ってください 道路インフラ担当者は、直進車両が方向転換するために赤信号を待たずに U ターン車両が通過できるように U ターンレーンを設計しました。これは読み書きロックです

  • 近くの倉庫で火災が発生しました。消防車が方向転換車線を占拠しました(占有されていたリソースは解放されず、他の車両は自力で通過できました)。消防団が通過するまで、ここがスピンロックです

  • この交差点は時間の経過とともに交通量が増加し、午前中に交通規制が始まりました。これは、「条件変数」を追加するためのものです
  • スピンロックなど、いくつかの例はそれほど正確ではないかもしれませんが、これを通じて。この例を実際の理論と組み合わせると、メモリ内の各ロックの特性をすぐに理解できます。

以上が「スレッド同期の原則」を理解するのに役立つ 2 つの例の詳細内容です。詳細については、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)