まだ少しプログラミングに新しいので、あまりにも多くの意味を作っていない場合は申し訳ありません。私が作業しているオブジェクトの別の2次元配列に対応するmutexロックの2次元配列を作成しようとしています。ここに私のコードですmutexロックの2次元配列を作る方法は?
#define NUM_THREADS 100
static pthread_mutex_t mutexes[NUM_THREADS][NUM_THREADS] = {
for(int i = 0 ; i < NUM_THREADS ; i++) {
P99_DUPL(NUM_THREADS, PTHREAD_MUTEX_INITIALIZER);
}
};
私はこれを正しく行っていますか?このことをすることさえ可能ですか?
編集:私がコンパイルしようとすると、 "for 'の前に" expected expression "というエラーが表示されます。
は、それが配列のもののためメートルミューテックス×n個を持っていることは可能ですか?はい、おそらく賢明ではありません。そのように初期化できますか? C/C++ではありません(新しいバージョンでは何らかのリスト理解が導入されない限り)。また、ターゲットマシンが100コア/スレッドのオーダでなければ、この多くのスレッドを実行することは意味がありません。スレッドプールサイズの優れたヒューリスティックは、n + ln(n)です(nは使用可能なCPUコア/スレッドの数です)。 – datenwolf
ヒントをお寄せいただきありがとうございます。私はバックペダルを試み、別の戦略を考え出します。 –