#include #include #include atomic_int counter = 5; //원자적 변수 void* producer(void* arg){ for(int i = 0; i < 1000000; i++){ atomic_fetch_add(&counter, 1); } return NULL; } void *consumer(void* arg){ for(int i = 0; i < 1000000; i++){ atomic_fetch_sub(&counter, 1); } return NULL; } int main(){ pthread_t t1, t2; pthread_create(&t1, NULL, producer, NULL); pthread_create(&t2, NULL, consumer, NULL); pthread_join(t1, NULL); pthread_join(t2, NULL); printf("최종 Counter 값 : %d\n", counter); return 0; }