मैं कई धागे बनाने का प्रयास कर रहा हूं कि प्रत्येक थ्रेड एक प्राइम की गणना करता है। मैं धागे बनाने का उपयोग कर एक समारोह में एक दूसरा तर्क पारित करने की कोशिश कर रहा हूँ। यह त्रुटियों को फेंकता रहता है।थ्रेड बनाएं - गुजरने वाले तर्क
void* compute_prime (void* arg, void* arg2)
{
यहां मेरा मुख्य() बनाने धागे के साथ है। & प्राइमएरे [i] & max_prime मुझे त्रुटियां दे रहा है।
for(i=0; i< num_threads; i++)
{
primeArray[i]=0;
printf("creating threads: \n");
pthread_create(&primes[i],NULL, compute_prime, &max_prime, &primeArray[i]);
thread_number = i;
//pthread_create(&primes[i],NULL, compPrime, &max_prime);
}
/* join threads */
for(i=0; i< num_threads; i++)
{
pthread_join(primes[i], NULL);
//pthread_join(primes[i], (void*) &prime);
//pthread_join(primes[i],NULL);
//printf("\nThread %d produced: %d primes\n",i, prime);
printf("\nThread %d produced: %d primes\n",i, primeArray[i]);
sleep(1);
}
त्रुटि मैं मिलता है:
myprime.c: In function âmainâ:
myprime.c:123: warning: passing argument 3 of âpthread_createâ from incompatible pointer type
/usr/include/pthread.h:227: note: expected âvoid * (*)(void *)â but argument is of type âvoid * (*)(void *, void *)â
myprime.c:123: error: too many arguments to function âpthread_createâ
यह ठीक काम करता है अगर मैं दूसरा तर्क बाहर ले।
नीचे का जवाब देखने के लिए, यह भी एक अच्छा pthread संदर्भ साइट के लिए बाहर [कड़ी] (https://computing.llnl.gov/tutorials/pthreads/#References) की जाँच करें। – NickO