2011-06-28 19 views
0

私はLinuxアプリケーションをiphoneに移植しています。マルチスレッドアプリケーションではなくマルチスレッドアプリケーションにするためにはどれくらいの書き換えが必要かを知りたいと思いますプロセスアプリケーション。アプリケーションをfork()でpthread_create()に移植する

また、forkしたコードを別のスレッドの関数呼び出しに置き換えると、私の実行フローの中で一見無作為な場所にexec_bad_addressが得られます...なぜ誰かがこのような場合があるのか​​知っていますか?

ありがとうございます!

答えて

2

これは、アプリケーションをUNIXプラットフォーム上でマルチスレッドに移行する場合とまったく同じです。フォークコードをpthread_create()の呼び出しで置き換えるだけでは、ほとんどの場合、十分ではありません。たとえば、プロセス間通信をサポートするすべてのコードを書き換える必要があるかもしれません。あるプロセスが別のプロセスをフォークし、次に2つのプロセスがパイプを通じて通信するとします。もちろん、これはもう動作しません。あなたはそのアイデアを手に入れます。

ちなみに、pthreadが利用可能であり、iOSで完全に動作している間は、iOSで利用可能な他の技術を使用することを強くお勧めします。その他の詳細については、特に「アウェイスレッドからの移行」と呼ばれるセクションを

Concurrency Programming Guide

をお読みください。スレッドの詳細については

Threading Programming Guide

を見ます
関連する問題