2

マルチコアデバイスのコードを書くことに疑問があります。当初、iPhone 3GS までの iPhone にはシングルコア CPU が搭載されていました。3GS 用のアプリケーションを実行したとき、複数のスレッドでコードを記述した場合、そのアプリケーションを iPhone 4 または iPad 2 (デュアル コア) で実行すると、iOS はこれらの複数のスレッドを異なるコアに割り当てますか? または、マルチコア CPU 機能の利点を活用するために、開発者側から何かすることはありますか。これは、異なるスレッドを異なるコアに割り当てる iOS の責任ですか? また、実行に時間がかかる関数があり、現在のスレッドでこのコードを呼び出しているとします (複数のスレッドは作成されていません) iOS は大きなタスクを 2 つの小さなタスクに分割し、異なるコアで実行しますか?

4

1 に答える 1

6

スレッド プリミティブを使用してコードを記述すると、OS が自動的にコア管理を処理します。

さらに、GCD を使用すると、コアとスレッドの管理が最適化されます。

つまり、GCD を (直接または NSOperationQueue などのヘルパーを介して) 使用すると、単一または複数の CPU アーキテクチャを使用しているかどうかに関係なく、システムはシステム CPU リソースへのアクセスを自動的に調整します。

于 2012-07-28T15:15:58.217 に答える