[c언어] 스레드 풀(thread pool)

스레드 풀(thread pool)은 프로그램이 동시에 여러 작업을 처리할 수 있도록 스레드를 효율적으로 관리하는 기술입니다. 스레드 풀은 미리 정의된 여러 개의 스레드를 생성하고 유지하여 작업을 처리하는 데 사용됩니다.

스레드 풀의 장점

스레드 풀의 구현

아래는 C언어를 사용하여 간단한 스레드 풀을 구현하는 예제입니다.

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

#define THREAD_POOL_SIZE 5

void* task(void *arg) {
    printf("Task %d started\n", *(int*)arg);
    // 작업 수행
    printf("Task %d completed\n", *(int*)arg);
    return NULL;
}

int main() {
    pthread_t pool[THREAD_POOL_SIZE];
    int tasks[10];

    for (int i = 0; i < THREAD_POOL_SIZE; i++) {
        pthread_create(&pool[i], NULL, task, &tasks[i]);
    }

    // 생략: 작업을 스레드 풀에 할당

    for (int i = 0; i < THREAD_POOL_SIZE; i++) {
        pthread_join(pool[i], NULL);
    }

    return 0;
}

이 예제는 5개의 스레드를 사용하여 작업을 처리하는 스레드 풀을 구현한 것입니다.

참고 자료: GeeksforGeeks - Thread Pool

이제 스레드 풀을 사용하여 프로그램의 성능을 향상시킬 수 있습니다.