私は、特定のユーザーの特定のアクティビティが競合する可能性のあるスレッドによって踏み込まれていないことを要求するアプリケーションを作成しています。私のユーザデータベース全体がメモリにあり、私はpthread_rwlock_t
をユーザデータ構造に追加することを考えていました。私は約10〜20,000人を超えるユーザーを予想していません。ロック構造のための56バイトで、それはまったくたくさんのRAMではありません。私の質問は、あなたがプロセスで持つことができる実際のrwlockの数には実際的な制限があるということですか?私はロックを得ることができるスレッドの数、または与えられたスレッドがロックカウンタをインクリメントできる回数について話していません。むしろ、根本的なカーネルや他のリソースがあれば、個々のロックを後退させてしまい、枯渇するかもしれません。pthreads rwlocksの実際の制限はありますか?
0
A
答えて
2
これは実装品質の問題です。POSIXでは、リソースの消耗によりrwlockの初期化が失敗することがあります。しかし、一般的なLinuxの実装では、例えば、pthread_rwlock_t
自体のメモリ以外にロック単位のリソースは必要ありません。
関連する問題
- 1. Apacheクラスタの実際の制限はありますか?
- 2. pthreadsによる実際のアクセラレーションがありません
- 3. iOSのメモリマップファイル数には実際的な制限がありますか?
- 4. JVMメモリとCPU使用率の実際的な制限はありますか?
- 5. CPUあたりのスレッドの実際の制限はいくらですか?
- 6. カレンダーエクステンダーの制限はありますか?
- 7. beforeRouteLeaveの制限はありますか?
- 8. onSaveInstanceStateの制限はありますか?
- 9. PerlNetの制限はありますか?
- 10. segueを実行する際に時間制限がありますか?
- 11. アクターメソッドの実行時間には制限がありますか?
- 12. zendフレームワークでは、テーブルデータゲートウェイを使用する際の制限はありますか?
- 13. デバイスをGCMトピックにマッピングする際の制限事項はありますか?
- 14. アプリストアからアプリを販売する際に制限はありますか?
- 15. テキストエリアの実際の制限はいくらですか?
- 16. Liferayサービスビルダー:Webアプリケーションのエンティティの最大数には実際的な制限がありますか?
- 17. 1分間に_trackPageviewを呼び出す際に制限はありますか?
- 18. phpメール機能を使用する際に制限はありますか?
- 19. UIWebViewでPDFを開く/ダウンロードする際のページ制限がありますか?
- 20. F#見積もりの別の制限はありますか?
- 21. GoogleのV8エンジンは実際に1プロセスあたり1 VMに制限されていますか?
- 22. 1ページにできるキャンバス要素の数には実際的な制限がありますか?
- 23. textareaは無制限で、制限はありません
- 24. Browserifyには何らかの制限がありますか?
- 25. Fusion Tablesのクエリの長さに制限はありますか?
- 26. GoogleのAPIには何の制限がありますか?
- 27. Postgresテーブルのカラム名の制限はありますか?
- 28. CouchBaseのmemcachedバケット数の制限はありますか?
- 29. iPhoneのドキュメントフォルダの容量に制限はありますか?
- 30. MongoDB 16MBのファイルサイズ制限の回避策はありますか?
"一般的なLinuxの実装では、pthread_rwlock_t自体のメモリ以外のロック単位のリソースは必要ありません。彼らは? pthread_rwlock_tを格納するためのメモリは必要ありません。 rwlockメソッド(例えば、http://osxr.org:8080/glibc/source/nptl/pthread_rwlock_rdlock.c#0030)にfutex syscallを持つlll_futex_waitがあります。ウェイターやウェイターがいるときにフューテックスが資源を必要としないのは本当ですか?ウェイターは、いくつかのリストや他のデータ構造でカーネルに保存する必要があります。 – osgx
@osgx:それはロックごとのリソースではなく、ウェイターごとのリソースです。 – caf
ありがとうございます。この特定のアプリケーションでは、現代のLinux以外のものはほとんど必要ありませんが、リソースが枯渇する可能性があるということを少なくとも知っておくと便利です。他の場所に移植する必要がある場合は、コードにその旨のコメントをたくさん挿入することができます。 – Kean