読者です 読者をやめる 読者になる 読者になる

Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 921 - これからしばらくGCDの勉強します。

マルチスレッドのチュートリアルを書いて基本的な概念は理解したような気になっていますが、まだまだ広い見識は備わっていません。さらなる邁進が必要なんで勉強します。

マルチスレッドの基本的な内容の復習をしていきます。Swiftで遊ぼう! - 302 - マルチスレッド(まとめ) - Swiftで遊ぼう! on Hatenaでも説明していますが、Swift 3からGCDに大きな改訂が加わりました。

これを少し詳しくみていきます。

Concurency

「Concurency」はiOS開発の現場でなんと言うのでしょう?そのまま英語読みで「コンカレンシー」でしょうか? よく分からないので「Concurency」と英語のまま表記していきます。日本語の意味は「並行性」です。似たような言葉で「Parallelism」があります。これを日本語で言うとなんでしょう?「パラリズム」ですか?意味は「平行性」です。

iOSはThread(スレッド)という処理単位を複数同時にこなす(マルチスレッド)システムを備えています。同時処理で実行することを「Parallelism」といいます。そして、この平行性実行はプロセッサの数やシステムに依存するってことです。次のイメージを見ます。
f:id:yataiblue:20170227124351j:plain

Paralleismを実行する構造に真のParallelismとConcurrencyがあるんです。例えば2つのプロセッサがあれば、2つのThreadをまさに平行にこなすことができます。しかし、プロセッサが1つなら、2つのThreadを切り替え(スイッチ)ながら同時処理します。これがConcurencyってことで、構造的に同時性を実現していることを意味します。

ここまで。