이 pthread_detach 관리를 위한 메모리 내게?
-
02-07-2019 - |
문제
가정하자 나는 다음과 같은 코드:
while(TRUE) {
pthread_t *thread = (pthread_t *) malloc(sizeof(pthread_t));
pthread_create(thread, NULL, someFunction, someArgument);
pthread_detach(*thread);
sleep(10);
}
이 분리된 스레드에 할당된 메모리에 의해 malloc,또는 그가 이해야 할까요?
해결책
No. 지칭() 알 길이 없는 스레드 포인터를 통과하는 그것에 동적으로 할당됩니다.인수를 입력하지 않는 이 값을 사용하여 내부적으로;그것은 단순히 반환합 새로운 스레드 id 를 발신번호를 입력하실 수 있습니다.당신이 필요하지 않을 동적으로 할당하는 값;로 전달할 수 있습의 주소는 지역 변수는 대신:
pthread_t thread;
pthread_create(&thread, NULL, someFunction, someArgument);
다른 팁
당신이 필요로하는 메모리 자신입니다.그것은 바람직 것을 단순히 할당 pthread_t 스 변수에 반대합니다.
제휴하지 않습니다 StackOverflow