このエントリはSwift 1.0の時に初版を書きました このエントリはSwift version 2.1 / Xcode 7.1.1 で動作確認済みです Swift Book にはスレッドや同期(synchronization)への言及がないからどうしたものかなと思っていたのだけど、objcにAPIをつかえば実現はできそうだ。 参考: What is the Swift equivalent to Objective-C's “@synchronized”? demo: https://github.com/gfx/Swift-MultiThreading objc_sync_enter() / objc_sync_exit() を使う これらはobjcの低レベルAPIで、@synchronized ブロックの実装のためにコンパイラが使う関数だけど、Swiftからも呼び出せる。 このままだ