同期プリミティブの正確な意味は?たとえば、ミューテックス、クリティカルセクション、待機可能タイマー、イベント、モニター、条件変数、セマフォーなどです。それらはすべて同期プリミティブですか?リストにない他の同期プリミティブはありますか?これらは有効な質問ですか?"同期プリミティブ"の定義
21
A
答えて
32
同期プリミティブは、スレッドまたはプロセスの同期をサポートする目的で、プラットフォーム(オペレーティングシステムなど)がユーザーに提供する簡単なソフトウェアメカニズムです。通常は、低レベルのメカニズム(アトミック操作、メモリバリア、スピンロック、コンテキストスイッチなど)を使用して構築されます。
ミューテックス、イベント、条件変数、およびセマフォはすべて同期プリミティブです。共有ロックと排他ロックがあります。 Monitorは一般的に高レベルの同期ツールと見なされます。これは、他の同期プリミティブ(通常、待機およびシグナリングをサポートする条件変数との排他ロック)を使用して、そのメソッドの相互排除を保証するオブジェクトです。モニターがビルディングブロックとして使用される状況によっては、モニターも同期プリミティブと見なされます。
クリティカルセクションは同期プリミティブではありません。これは、いくつかの不変条件を維持するために同時実行から保護されなければならない実行パスの一部です。クリティカルセクションを保護するには、いくつかの同期プリミティブを使用する必要があります。
1
@Loomさんが提案したように、私はコロンビア大学が提供するthis listを質問に答えて追加しています。
また、マイクロソフト社のthis articleを03/2017にチェックアウトしています(古いですが、コロンビア大学の記事もそうです)。
私が集めたことから、同期プリミティブは正式なリストがないという意味では明確に定義されていません。
関連する問題
- 1. プリミティブ同期プリミティブ - 安全?
- 2. 同期アダプタの定義
- 3. C#非同期サーバーソケット定義?
- 4. AtomicInteger同期プリミティブはありますか?
- 5. 同期サービスAdo.net定義範囲ID
- 6. Javascript:AMD(非同期モジュール定義)で「同期」メソッドが必要ですか?
- 7. ラケットの同時実行プリミティブ
- 8. 複数の定義エラー同じ定義
- 9. Imagemagick非準拠の描画プリミティブ定義 `、 '@ error/draw.c/DrawImage/3169
- 10. タスクベースの非同期メソッドのコールバックを定義する場所
- 11. 非同期リクエスト後の配列内の未定義インデックス
- 12. 非同期関数の結果は未定義です
- 13. 約束の中で非同期関数を定義する
- 14. クラス定義コマンドが同期外れの解決
- 15. もう一つの非同期サービスは未定義
- 16. プリミティブのフロータイプ名義型入力
- 17. Entity Frameworkコード先頭CTP5:非プリミティブ型を定義する方法
- 18. RMagick/ImageMagickプリミティブが定義されていません
- 19. autoで変数を宣言し、プリミティブなリテラル定義の動作で初期化していますか?
- 20. Webサービスを非同期として定義する場所
- 21. オブジェクトリテラルで非同期関数を定義する方法
- 22. 非同期forEach関数は未定義を返します
- 23. http.get()リクエスト - 同期/非同期の問題で操作の順序を定義する
- 24. 同期スレッド通信はJavaです - プリミティブ構造のみを使用します
- 25. プログラミングの「アトミック」と「同期」の同義語はありますか?
- 26. 同期VS設定のリセット
- 27. 非同期Webpackの設定
- 28. c99での構造体の初期化と定義の同時実行
- 29. アトムエディタの同期設定と設定
- 30. クラス/非同期の使用時に未定義の "this"を取得する
"クリティカルセクションは同期プリミティブではありません。" クリティカルセクションと呼ばれる同期プリミティブがあるウィンドウを除いて:http://goo.gl/35zir(はい、よく定義された用語をひどく誤って使用していますが、変更することはできませんMS間違い) – paxos1977
[ここ](http://www.cs.columbia.edu/~hgs/os/sync.html)は、コロンビア大学 – zook2005
@ zook2005が提供するリストです。あなたのコメントを答え(私はupvoteすることができます) – Loom