6

C++ 標準ライブラリはstd::mutex (lock, unlock, try_lock)、マルチスレッド環境で機能する機能を提供します。

Boost::mutexまた、私が見る限り、同じ機能 ( ) を提供するラッパー ライブラリ ( など) についての話を聞いたことがありますlock, unlock, try_lock

私の質問は、標準のものよりもそのようなラッパー ライブラリを使用する利点は何ですか?

4

3 に答える 3

9

std::mutexstd::threadおよびスレッド ライブラリのその他の要素は、C++11 でのみ使用できます。boost::mutex他はC++ 11よりも前です。したがって、C++11 をサポートしていない場合でも使用できるという利点があります。

于 2012-08-26T14:54:44.617 に答える
2

juanchopanza は質問に対する最も直接的な回答 (+1) に注目しましたが、それらがラップする型にstd::mutex 導入される 1 つのことは、例外の使用です。ほとんどの人/環境/ニーズにとって、それは良いことだと考えられます. 場合によっては、例外依存が必要ない場合があります。その場合/環境では、std::mutexインターフェイスはオプションまたは望ましいものではない場合があります。

于 2012-08-26T15:12:42.727 に答える
2

TBB や PPL などの一部のラッパーは、標準ライブラリよりもはるかに多くの機能を提供します。

  1. pthreads/CreateThread を自分で使用する = 独自のmalloc.
  2. std::thread= malloc/を使用しfreeます。
  3. TBB/PPL = std::vector/を使用しstd::unique_ptrます。
于 2012-08-26T15:15:08.657 に答える