タグ

boostに関するsleepy_yoshiのブックマーク (4)

  • C++, boost::thread : スレッドの生成と実行

    C/C++でスレッドを扱う場合は、プラットフォームによって使用するライブラリが違います。 Windows なら Windows API の thread で、 UNIX や Linux 系ならば pthread ライブラリ等を使用します。プラットフォーム依存するコードは可搬性に難があり、解決策の1つとしてプリコンパイルで依存部分をプラットフォームに合わせたライブラリを選択してコンパイルする方法があります。 boost ライブラリの boost::thread は、上のような処理をラップして共通のインターフェイスとして実装されています。 boost/thread.hppの一部 #if defined(BOOST_THREAD_PLATFORM_WIN32) #include <boost/thread/win32/thread.hpp> #elif defined(BOOST_THREAD_

    C++, boost::thread : スレッドの生成と実行
  • 2010-12-27

    Boostに以前からread-writeロックは実装されていたようですがバグがあったとかで最近の物ではupgrade_lock, upgrade_to_unique_lockにさし変わっています。 ただのロックと比べてパフォーマンスが出やすい上に素性の良い設計だと思うので紹介してみようと思います。 read lock read-lockをする場合はshared_mutexを引数にshared_lockをかけてやればいいです。 #include <boost/thread.hpp> using namespace boost; shared_mutex mutex; void reader(){ shared_lock<shared_mutex> read_lock(mutex); // ここでロック! // クリティカルセクション } スコープを外れると同時にshared_lockのデスト

    2010-12-27
  • 逆引きリファレンス - boostjp

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • C++ でお手軽乱数(boost::random のラッパー) - 木曜不足

    C++ で乱数、特に正規乱数とか欲しいなあ。 rand() 関数は使っちゃダメ! 絶対! ということらしいので、boost::random を使ってみた。 が、なんでちょこっと乱数が欲しいくらいでそんなややこしいコード書かないといけないの!? と、キレたくなるほど複雑。 同じ型名を何度も書くのとか、ダサダサでしょう…… なので、最小限の汎用性を持たせつつ、便利でお手軽に使えるラッパーを書いてみた。 #include <boost/random.hpp> template<class D, class G = boost::mt19937> class Rand { G gen_; D dst_; boost::variate_generator<G, D> rand_; public: Rand() : gen_(static_cast<unsigned long>(time(0))),

    C++ でお手軽乱数(boost::random のラッパー) - 木曜不足
  • 1