こんにちは!エンジニアの柳村です。 今回は、いい感じに設計していると普段はほとんど使う場面はなさそうな排他制御(Swift)についての話 です。 Swift(iOS)で使える排他制御はざっとあげただけでもこれだけたくさんあります。 NSLock/NSRecursiveLock/NSConditionLockobjc_sync_enter(),objc_sync_exit()DispatchSemaphoreOSSpinLock/os_unfiar_lock(iOS10以降)pthread_mutexsemaphoreGCDのserialQueueとDispatchQueue.syncを使うこれらの排他制御の違いはなにでどういったときにどういったときにどれを使えばよいかといったことについて説明します。 結論長くなるので先に結論を言っておきますと そもそも同期処理はないほうがいいのでそうなるよ