2012-02-24 8 views
-1

と2D配列内の最大数を検索します。その後、各スレッドは指定された行の最大値を見つけるはずですが、どのスレッドもpthread_joinで完了するのを待つことはできません。だから何をすべきか?私は2次元配列の各行に1つのスレッドを作成するスレッド

+1

まず、あなたがしようと、それはあなたのために動作しませんでしたいくつかのコードを投稿する必要があります。 – dasblinkenlight

+1

あなたは '私はpthread_join'を完了するために任意のスレッドを待つカントとは何を意味するのですか? –

答えて

1

2次元配列を1D配列に分割してスレッドに渡したいと思っていますが、これらのスレッドがそれぞれ独自の配列で最大値を見つけたときに何をすべきか分かりません。 「Tはpthread_exit()にこの値を渡すと、メインスレッドでpthread_join()ことによってそれを取得したいです。

あなたは、これらの値を格納するためのメインスレッドによって管理されるグローバル配列を使用することができます。ここでの考え方(擬似コード)は次のとおり

int* max; // global 

thread(...){ 
int localMax = 0; 
... 
max[rowIndex] = localMax; 
} 

// main thread: 
max = malloc (rowCount * sizeof(int)); 
... 
free(max); 

各スレッドは、所与の配列(行)に極大localMaxを検出し、アレイmaxに格納します。

しかし、最後に、あなたは、すべてのスレッドが作業を終えたことを知っているようにpthread_joinを使用する必要があります。

+0

2dの配列でスレッドごとに各行にmaxを探したい。 –

+0

@DavoodHanifi:私は自分の答えを更新しました。 – LihO

関連する問題