[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
라이브러리를 활용하여 간단히 구현할 수 있습니다.