간단한 쿼리 일 수 있습니다.멀티 스레딩 프로그램에 대한 쿼리
우리가 스레드를 만들 때 (void *) t를 함수의 인자로 전달할 때 PrintHello.we는 긴 변수 인 tid에서 포인터 threadid (long에 typacasting)의 값을 다시 복사합니다. .i 매개 변수 전달과 혼동합니다. 이것은 참조로 전달하거나 value.over로 전달하는 것이 맞습니까? (value *)t
. 정확히 어떤 가치가 전달됩니까?
long t;
rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
void *PrintHello(void *threadid)
{
long tid;
tid = (long)threadid;
내 혼란을 :(방지하기 위해 저를 도와주세요
정답입니다. 이 경우에는 32/64-bit 스칼라 변수 만 전달한다고 가정하면 안전합니다. 값이 복사되고 함수의 종료 여부와 상관없이 안전하게 읽을 수 있습니다. – minjang