iPhoneはマルチタスクとマルチスレッドをサポートしていないと言われました。これは私には意味がなかったので、シミュレーターでテストしました。pthreadsは機能しますが、fork()は機能しません。この結果は私には理にかなっていますが、今はわかりません。pthreadライブラリは実際のデバイスでも機能しますか?
ありがとう。
マルチスレッドは機能します。そうしないのはマルチタスクです。iPhoneでは、一度に複数のサードパーティアプリケーションを実行することはできません。その推論により、フォークはアプリケーションのサンドボックスの外に存在します。
スレッドを作成して、ソケットをポーリングしたり、ファイルを読み取ったり、AIプレーヤーを必要なだけ処理したり、パフォーマンスの向上がなくなるまでスレッドを作成したりできます。
はい、pthread
ライブラリはiPhoneで動作します。または、Cocoaネイティブスレッドを。で使用することもできますNSThread
。Appleが明示的に制限しているため、マルチタスクは機能しません。
最も可能性が高い。
マルチタスクはデフォルトで無効になっており、アプリが一連のプロセスを生成してiPhoneの速度を低下させたり、悪意のあることを実行したりするのを防ぎます。
iPhoneのCPUは実際にはそれほど高速ではありませんが、一度に1つのプログラムを実行するだけで、高速に見えます。マルチタスクは、iPhoneの速度を低下させる多くのオーバーヘッドやその他の問題を引き起こします。
マルチスレッドについては実際にはわかりませんが、スレッドは独自のプロセスに含まれているため、機能する可能性があります。
そして、あなたが言ったように、pthreadは機能し、fork()は機能しないので、論理的には実際のpthreadでも機能します。
マルチスレッド化は非常に可能です。iPhoneは実際にはMacで利用可能なものと同じCocoaスレッド化APIを使用しています。描画やネットワーク通信などを処理するために6つのスレッドを使用する共同描画アプリを作成します。iPhoneにはプロセッサが1つしかないため、スレッドを多く作成するのは悪い考えだと思います。しかし、私の経験では非常にうまく機能します!