5

iPhoneはマルチタスクとマルチスレッドをサポートしていないと言われました。これは私には意味がなかったので、シミュレーターでテストしました。pthreadsは機能しますが、fork()は機能しません。この結果私には理にかなっていますが、今はわかりません。pthreadライブラリは実際のデバイスでも機能しますか?

ありがとう。

4

4 に答える 4

10

マルチスレッドは機能します。そうしないのはマルチタスクです。iPhoneでは、一度に複数のサードパーティアプリケーションを実行することはできません。その推論により、フォークはアプリケーションのサンドボックスの外に存在します。

スレッドを作成して、ソケットをポーリングしたり、ファイルを読み取ったり、AIプレーヤーを必要なだけ処理したり、パフォーマンスの向上がなくなるまでスレッドを作成したりできます。

于 2009-07-27T16:09:25.460 に答える
3

はい、pthreadライブラリはiPhoneで動作します。または、Cocoaネイティブスレッドを。で使用することもできますNSThread。Appleが明示的に制限しているため、マルチタスクは機能しません。

于 2009-07-27T16:28:08.823 に答える
1

最も可能性が高い。

マルチタスクはデフォルトで無効になっており、アプリが一連のプロセスを生成してiPhoneの速度を低下させたり、悪意のあることを実行したりするのを防ぎます。

iPhoneのCPUは実際にはそれほど高速ではありませんが、一度に1つのプログラムを実行するだけで、高速に見えます。マルチタスクは、iPhoneの速度を低下させる多くのオーバーヘッドやその他の問題を引き起こします。

マルチスレッドについては実際にはわかりませんが、スレッドは独自のプロセスに含まれているため、機能する可能性があります。

そして、あなたが言ったように、pthreadは機能し、fork()は機能しないので、論理的には実際のpthreadでも機能します。

于 2009-07-27T16:07:19.037 に答える
0

マルチスレッド化は非常に可能です。iPhoneは実際にはMacで利用可能なものと同じCocoaスレッド化APIを使用しています。描画やネットワーク通信などを処理するために6つのスレッドを使用する共同描画アプリを作成します。iPhoneにはプロセッサが1つしかないため、スレッドを多く作成するのは悪い考えだと思います。しかし、私の経験では非常にうまく機能します!

于 2009-07-27T16:22:04.577 に答える