2012年3月1日木曜日

GCDを使ったスレッドセーフな初期化

インスタンスの遅延実行をスレッドセーフに行う為の考察。面白い。

次の4つの方法が紹介されている。
  • @synchronized
  • dispatch_semaphore_*
  • dispatch_once
  • dispatch_sync

dispatch_once はグローバル/スタティックな変数を使用する必要があるのでインスタンス単位で使えない。1番すっきりしているのは最後の dispatch_sync。



0 件のコメント:

コメントを投稿