는 :C에서 pthread를 처음 사용하는 이유는 무엇입니까? 다음 코드에서
int main (int argc, const char * argv[]) {
// insert code here...
pthread_t t1, t2;
int sp1, sp2;
sp1 = pthread_create(&t1, NULL, getScalarProduct, NULL);
sp2 = pthread_create(&t2, NULL, getScalarProduct, NULL);
pthread_join(t1, NULL);
pthread_join(t2, NULL);
printf("Seperate scalars: %d %d\n", sp1, sp2);
finalScalarProd = sp1 + sp2;
printf("Result: %d\n", finalScalarProd);
return 0;
}
나는 finalScalarProduct에 0보다 다시 다른 것을 얻을 수 없습니다 있었고, SP1 및 SP2 모두는 제로이다. 나는 그것이 pthread_join에 전달되는 NULL 인수와 관련이 있다고 생각한다. 나는이 주장이 무엇인지 이해하지 못한다.
도움을 주셨습니다.
'pthread_create'의 리턴은 스레드 함수의 리턴이 아닙니다. 스레드 함수는 반환 할 때까지 아직 실행되지 않을 수도 있습니다. 'pthread_create'의 리턴은 단순히 성공 또는 실패를 나타냅니다. – Puppy