での使用方法を示す簡単な例を見つけましtreads
たC++
。それがどのように機能するかは理解していますが、ソースをvector
の代わりにスレッドを使用するように変更することはできませんarray
。好きvector
なだけスレッドを作成できるようにしたいです。実装方法とどこで間違いを犯すか教えてください(コメント付きのコードは私が実装しようとしたものです)?
#include <iostream>
#include <pthread.h>
#include <vector>
using namespace std;
#define NUM_THREADS 5
void *PrintHello(void *threadid)
{
long tid;
tid = (long)threadid;
cout << "Hello World! Thread ID, " << tid << endl;
pthread_exit(NULL);
}
int main ()
{
// vector<pthread_t> vectorOfThreads;
pthread_t threads[NUM_THREADS];
int rc;
int i;
for( i=0; i < NUM_THREADS; i++ ){
cout << "main() : creating thread, " << i << endl;
// rc = pthread_create(&vectorOfThreads[i], NULL,
// PrintHello, (void *)i);
rc = pthread_create(&threads[i], NULL,
PrintHello, (void *)i);
if (rc){
cout << "Error:unable to create thread," << rc << endl;
return 1;
}
}
pthread_exit(NULL);
return 0;
}