2011-04-18 7 views
0

- > iphoneアプリケーションを作成しています - >私はバックグラウンドでスレッド数を実行しているシナリオを持っています。すべてのスレッドをスリープ状態にする方法 - iphone

- >今、メインスレッドでイベントを受け取り、新しいバックグラウンドスレッドで何らかのアクションを実行する必要があるとします。

- >しかし、その時点で新しいバックグラウンドスレッドで何らかのアクションを実行すると、他のすべてのスレッドは、アクションが完了するまで一時停止/スリープする必要があります。

- >アクションが完了すると、他のすべてのスレッドが処理を再開します。

私はこれについてさらに詳しく調べていきますが、いずれかのアイデアがある場合は、入力してください。

+0

ネイティブCスレッドを使用することを検討してください現在のフラグにオブジェクトを渡すすべての作業スレッドは、このオブジェクトの別のセットまで保持しますか?私はこのメカニズムをC#でやっていました。 –

+0

あなたは何をしたいのかをもっと詳しく記述できますか?バックグラウンドスレッドは何をしていますか?なぜ彼らは一時停止する必要がありますか?これまで提案されたものより簡単な解決策があるかもしれません。 – kubi

答えて

0

通常のシグナリング

おかげでそうのように、同期するためのミューテックスを使用して、pthreadの条件を使用して行うことができます。

ミューテックスと条件変数を作成します。

pthread_mutex_init(&mutex, NULL); 
    pthread_cond_init(&cond, NULL); 

スレッド1:シグナルを待ちます:

pthread_cond_wait(&cond, &mutex); 

スレッド2:信号のスレッドワイ条件を指定して

関連する問題