Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

multithreadとdouble_checked_locking_patternとc++に関するmrknのブックマーク (1)

  • C++0x時代の Double-Checked Locking - yamasaのネタ帳

    今回は "Double-Checked Locking" (以下DCL)というマルチスレッドプログラム向けのイディオムを例にして、C++0xの(低レイヤ向け)マルチスレッド機能の利用方法を紹介してみます。 DCLとは、「ロック→条件判定」というロジックを「条件判定→ロック→(再度)条件判定」と書き換えるイディオムで、主に遅延初期化などの処理においてロックのオーバーヘッドを減らすために用いられます。DCLはシンプルかつ効果の高いイディオムだったので、一時期もてはやされました。ところが、DCLはコンパイラやCPUによるリオーダーの影響により正しく動作しない場合があることがわかったため(参考1、参考2)、今ではアンチパターンと呼ばれることすらある始末です。 しかし、DCLの問題点は、メモリモデルに関する知識があまり知られていなかったことと、プログラミング言語の仕様でメモリモデルが正しく定義されて

    C++0x時代の Double-Checked Locking - yamasaのネタ帳
    mrkn
    mrkn2011/03/01非公開
    "atomic変数とメモリバリアがきちんと定義されている C++0x では、DCLを正しく実装することが可能になった"
    • 残りのブックマークを読み込んでいます1

    お知らせ

    公式Twitter

    • @HatenaBookmark

      リリース、障害情報などのサービスのお知らせ

    • @hatebu

      最新の人気エントリーの配信

    処理を実行中です

    キーボードショートカット一覧

    j次のブックマーク

    k前のブックマーク

    lあとで読む

    eコメント一覧を開く

    oページを開く

    はてなブックマーク

    公式Twitter

    はてなのサービス

    • App Storeからダウンロード
    • Google Playで手に入れよう
    Copyright © 2005-2025Hatena. All Rights Reserved.
    設定を変更しましたx

    [8]ページ先頭

    ©2009-2025 Movatter.jp