[c언어] C 언어로 구현된 멀티 스레딩 예제

멀티 스레딩은 프로그램이 동시에 여러 작업을 처리할 수 있게 하는 기술입니다. C 언어는 이러한 멀티 스레딩을 지원하며, pthread 라이브러리를 사용하여 멀티 스레드를 구현할 수 있습니다. 이번 포스트에서는 C 언어로 간단한 멀티 스레딩 예제를 살펴보겠습니다.

프로그램 목표

이 예제 프로그램은 두 개의 스레드를 생성하여 각각 1부터 5까지의 숫자를 출력하는 것입니다.

프로그램 구현

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

void *printNumbers(void *arg) {
    int id = *((int *)arg);
    for (int i = 1; i <= 5; i++) {
        printf("Thread %d: %d\n", id, i);
    }
    pthread_exit(NULL);
}

int main() {
    pthread_t thread1, thread2;
    int id1 = 1, id2 = 2;
    pthread_create(&thread1, NULL, printNumbers, &id1);
    pthread_create(&thread2, NULL, printNumbers, &id2);
    pthread_join(thread1, NULL);
    pthread_join(thread2, NULL);
    return 0;
}

위 코드에서 pthread.h 헤더 파일을 포함하여 멀티 스레딩을 위한 라이브러리 함수를 사용할 수 있습니다. printNumbers 함수는 스레드에서 실행될 함수로, 인자로 받은 숫자에 따라 스레드의 아이디를 출력합니다. main 함수에서는 두 개의 스레드를 생성하고, 생성된 스레드로부터 반환되는 결과를 기다리고 있습니다.

프로그램 실행 결과

프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Thread 1: 1
Thread 1: 2
Thread 1: 3
Thread 1: 4
Thread 1: 5
Thread 2: 1
Thread 2: 2
Thread 2: 3
Thread 2: 4
Thread 2: 5

결론

이번 포스트에서는 C 언어로 구현된 간단한 멀티 스레딩 예제를 살펴보았습니다. 멀티 스레딩은 프로그램의 성능을 향상시키고 병렬 작업을 처리하는 데 유용한 기술이며, C 언어에서도 pthread 라이브러리를 활용하여 간단히 구현할 수 있습니다.