25章スレッド

スレッドとは、簡単に言うと、アプリを構成する他のサブプロセスが実行されているあいだにも実行できるアプリ内のサブプロセスのことです。このように同時に実行することをコンカレンシと呼びます。iOSのフレームワークはスレッドをしじゅう使用しています。もしそうでなければ、ユーザーの操作に対するアプリの応答性が悪くなり、場合によってはまったく応答しないような場合も起きるでしょう。しかしそれらのフレームワークの特質は、アプリ開発者がスレッドを使う必要がないように的確にスレッドを利用するところにあります。

たとえば、自作のアプリでネットワークから何かをダウンロードしているとしましょう(24章)。ダウンロードというのは、それ自体で勝手に進行するものではありません。どこかで誰かが、ネットワークとやり取りをしてデータを取得するコードを実行しているのです。同じように、Core Motion(22章)はどうやって機能するのでしょうか? たえずセンサからデータを収集しては、さらに重力成分とユーザー起因の成分を分離する計算やジャイロスコープ内のバイアスとスケールファクタの影響を除去することを含めた処理を行っています。こうしたことにも関わらず、ダウンロードやセンサデータの随時更新によってアプリのコードの実行が妨げられることもなければ、ユーザーが画面上で何かをタップしたりスワイプすることができなくなったりはしません。これが、コンカレンシが実現されているということです。

本書でこれまでスレッドにはほとんど言及せずにこれたことが、iOSフレームワークが巧みに作られているというひとつの証です。実際、この話題についてまったく触れなくてもよかったでしょう。スレッドを使うのは難しくて危険でもあり、できるものなら避けるべきです。しかしときには ...

Get 詳解 iOS SDK 第4版 ―ワンランク上のiPhone/iPadプログラミング now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.