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