thread_return.c

Download
c 38 lines 758 B
 1// thread_return.c
 2// 스레드 반환값 받기
 3#include <stdio.h>
 4#include <stdlib.h>
 5#include <pthread.h>
 6
 7void* calculate_sum(void* arg) {
 8    int n = *(int*)arg;
 9
10    // 동적 할당하여 결과 반환
11    long* result = malloc(sizeof(long));
12    *result = 0;
13
14    for (int i = 1; i <= n; i++) {
15        *result += i;
16    }
17
18    printf("스레드: 1부터 %d까지 합 계산 완료\n", n);
19    return result;
20}
21
22int main(void) {
23    pthread_t thread;
24    int n = 100;
25
26    pthread_create(&thread, NULL, calculate_sum, &n);
27
28    // 반환값 받기
29    void* ret_val;
30    pthread_join(thread, &ret_val);
31
32    long* result = (long*)ret_val;
33    printf("결과: %ld\n", *result);
34
35    free(result);  // 동적 할당된 메모리 해제
36    return 0;
37}