1
A
答えて
1
boost scoped_lockは簡単で偽の方法です。このようなオブジェクトにロックを張ると、何らかの理由でスコープが残ったときに自動的にロックが解除されます。 (リターン、例外、...)編集:また、C++ 11の点に注意してください。@Useless
class Foo
{
public:
void bar()
{
// Will grab the resource or wait until free
::boost::mutex::scoped_lock lock(m_mutex);
//Critical section
// No need to unlock the lock will do that itself.
}
private:
boost::mutex m_mutex;
}
によって語らとしてのstd :: lock_guardとstd ::をミューテックス、この例では、ここに 発見されましたhttp://developer-resource.blogspot.com/2009/01/boost-scoped-lock.html
1
あなたがC++ 11を持っている場合:
class Foo
{
std::mutex bar_mutex;
public:
void bar()
{
std::lock_guard guard(foo_mutex);
// ... do your stuff here ...
}
};
はヨハンのブースト版と同等です。
インスタンスごとにメソッドをロックすることに注意してください.FooインスタンスがすべてFoo::bar
を同時に呼び出さないようにするには、mutex static
を作成してください。
関連する問題
- 1. C++マルチスレッド・アプリケーションのプロファイリング
- 2. マルチスレッドC#アプリケーション
- 3. pythonロックメソッドの注釈
- 4. マルチスレッドのC#アプリケーションでインターフェイスがフリーズする
- 5. マルチスレッドCアプリケーションのフレームワークまたはパターン
- 6. マルチスレッドのWebアプリケーション
- 7. WPFアプリケーションのマルチスレッド
- 8. iPhoneアプリケーションのマルチスレッドの問題?
- 9. マルチスレッドWindowsアプリケーション
- 10. C#マルチスレッド
- 11. セレンのwebdriver C#マルチスレッド
- 12. Objective-Cでのマルチスレッド
- 13. Cマルチスレッドの起点
- 14. マルチスレッドのVisual Studio C++
- 15. マルチスレッドInvalidOperationExceptionがC#の
- 16. C#マルチスレッドの問題
- 17. マルチスレッドlinq2sqlアプリケーションTransactionScopeの問題
- 18. マルチスレッドJPAアプリケーションでのMerge()
- 19. tkinterアプリケーションからのマルチスレッド化
- 20. 大きなスレッドプールを持つマルチスレッドC++アプリケーションのデバッグ
- 21. マルチスレッドのCアプリケーションにPythonを埋め込む
- 22. マルチスレッドX11アプリケーションとOpenGL
- 23. CでのAPIのマルチスレッド化
- 24. C++マルチスレッドでのPetersonのアルゴリズム
- 25. C++のコールバック関数のマルチスレッド
- 26. マルチスレッドでのCのmmorpg
- 27. Cマルチスレッドとリアルパス
- 28. C++マルチスレッドとイベント
- 29. C++マルチスレッド同期
- 30. OutOfMemoryExceptionマルチスレッドc#
Google「クリティカルセクション」C++(実際にはリンク先は次のとおりです。http://msdn.microsoft.com/en-us/library/windows/desktop/ms683472%28v=vs.85%29.aspx) – OSH