POSIXのmutex
は、Win32のCRITICAL_SECTION
と同等です。そのスコープは1つのプロセスに限定されています。 Win32のミューテックス(NTランドでは実際には "mutant"と呼ばれます)は、クロスプロセスロックメカニズムとして機能します。プロセス間ロックのpthreadsと同等のものは何ですか?POSIXのWin32のミューテックスに相当するものは何ですか?
答えて
それはPTHREAD_PROCESS_SHAREDに設定pshared属性でpthread_mutex_tです。しかし、共有メモリーにこのようなミューテックスを置く責任があり、すべてのプロセスがアクセスできるので、win32 APIほどシンプルではありません。
おそらくwin32に近いのは、posixまたはsysvセマフォです。伝統的に、プロセス間の同期はファイルロックを使用して行われている。 flockまたはlockf(これは聞こえるほど速くはありません)
スコープはスレッドにのみ適用されますか? 'pthread_attr_t'は' pthread_create'に渡すことしかできません。 'pthread_mutex_init'で' pthread_mutexattr_t'を使う必要があります。 –
そうです、pthread_mutexattrのpsharedが必要です – nos
ロックの遅さ(またはその欠如)に関するリンクがありますか?私はそれについてもっと詳しく調べましたが、興味深いものは見つかりませんでした。私たちは大きな共有ファイルを持つ大きなプロジェクトを持っており、ロックのためにいくつかのパフォーマンス上の問題があると思われますが、どのように見つけ出すのか分かりません。 –
クロスプロセス処理(パイプ、セマフォ、メッセージキュー、または共有メモリ)にIPCを使用する必要があります。 あなたのケースでは、名前付きセマフォがうまくいくと思います。詳細については:
man 7 sem_overview
私は共有メモリを使いたいです。しかし、共有メモリをロックする方法が必要です。 –
sem_init()を使用すると、共有メモリのロックを実行できます。 –
この無駄なセマフォを忘れてしまいます。共有メモリオブジェクトを作成し、そこにpsharedミューテックスを作成します。 –
- 1. LinuxでWin32 APIに相当するものは何でしょうか?
- 2. Windows CEのkbhitに相当するものは何ですか?
- 3. preg_matchのJavaScriptに相当するものは何ですか?
- 4. DjangoアプリケーションのHerokuに相当するものは何ですか?
- 5. clangの `cpp -dD`に相当するものは何ですか?
- 6. @Postconstructのejb-jar.xmlに相当するものは何ですか?
- 7. .NETのPHP InfiniteIteratorに相当するものは何ですか?
- 8. Javascriptの.sampleに相当するものは何ですか?
- 9. WinFormsのForm.IsValid()に相当するものは何ですか?
- 10. NOT INのHQLに相当するものは何ですか?
- 11. PHPのpreg_quoteに相当するものは何ですか?
- 12. curlコマンドのjavaに相当するものは何ですか?
- 13. AndroidのActionSheetIOSに相当するものは何ですか?
- 14. .net coreのcontext.environment.addに相当するものは何ですか?
- 15. OSXのSHGetFolderPathに相当するものは何ですか?
- 16. Debugger.Launch()のJavaに相当するものは何ですか?
- 17. pythonのgetattrに相当するものは何ですか
- 18. phpMyAdminのアスタリスク(*)に相当するものは何ですか?
- 19. LinuxのWSAEventに相当するものは何ですか?
- 20. jQuery.getScript()のZeptoに相当するものは何ですか?
- 21. Rubyの "pythonic"に相当するものは何ですか?
- 22. Go - Pythonの "pass"に相当するものは何ですか?
- 23. Java Stream.collectのKotlinに相当するものは何ですか?
- 24. purecss.ioのコンテナブートストラップクラスに相当するものは何ですか?
- 25. C#Server.URLEncodeのJavaScriptに相当するものは何ですか?
- 26. Kernel32.dllのLinuxに相当するものは何ですか?
- 27. PHP substr()のRubyに相当するものは何ですか?
- 28. iOSのC#ドロップダウンコンボボックスに相当するものは何ですか?
- 29. java androidのNSOperationQueueに相当するものは何ですか?
- 30. Rubyのsubstrに相当するものは何ですか?
'CRITICAL_SECTION'は' pthread_spinlock_t'に近いので、mutexは 'WaitForSingleObject' /' ReleaseMutex'と 'pthread_mutex_t'を比較します。 –
@ Steve-o:これら2つの違いは何ですか?私の理解はしても、クリティカルセクションとミューテックスの唯一の違いは、1つはプロセス内にあり、もう1つはクロスプロセスであるということです。次に、posixスピンロックとposix mutexの違いは何ですか? –
@Billy:この回答はスピンロックビジーウェイト、mutexes yield http://stackoverflow.com/questions/195853/spinlock-versus-semaphore –