詳しくは「スレッドプログラミングガイド」参照 ロックはスレッドの排他制御に必要。 注:アップルはスレッドプログラミングではなくより簡便な代替テクノロジー(NSOperation, GCD, アイドル時間通知、非同期関数、タイマー、別プロセス)を使うことを勧めている。 スレッドの実装 スレッドの基礎にある実装メカニズムはMachスレッド POSIX API スレッドの3つの状態 実行、実行可能、ブロック NSLockingプロトコル ロックオブジェクトが持つべきメソッド。lock,unlock。 lock ロックを取得する。ロックが取得できるまでスレッドを止める。 unlock ロックを開放する。 NSLockingの実装の一つ。 NSLockingプロコトル以外により細かな制御ができる。 tryLock: ロックでなかったときに直ちにNOを返す。lockが開放されるまで待つのと対照的。 l
![NSLockメモ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/bba4d8833c1e9ae6ed95473805acd32db921c381/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9TlNMb2NrJUUzJTgzJUExJUUzJTgzJUEyJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz1jMDhjYzIxOGI4ZDQwZmQ1ZDMxMmQwMzNlYjQ4MjdiZA%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBLYXRhZ2lyaVNvJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz01ZTY4NWM0NGM4YTg4NjU3ZTFmODYxYzEyYzVmNzkxNA%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D9fbb84b0d77b616b8300a4ac6c07464c)