각각의 모듈은 아래와 같습니다.
- Thread
- Threading
먼저 Thread는 C와 같이 함수를 이용해 Thread를 run 시키는 방식으로 MultiThreading을 구현합니다.
Threading은 흔히 자바에서 보던 방식처럼 Thread관련 클래스를 상속받아 run을 override 하여 사용합니다.
이 포스팅에선 먼저 Thread만 다루도록 하겠습니다.
1. Thread
기본적으로 Thread에서 thread를 run시키는 함수는 아래와 같습니다.
thread.start_new_thread( function, (argument))
아래 소스코드를 확인 해 보겠습니다.
위의 print_num함수에 threadName과 delay인자를 준 뒤
delay 시간만큼 텀을 두고 숫자를 1~5까지 출력하는 함수 입니다.
이 함수를 각 각 1초와 2초로 설정하여 두개의 쓰레드를 작동 시키는 프로그램입니다.
출력값은 synchronizing이 되어있지 않아 값이 겹쳐 나올 수 있게 됩니다.
마지막의 while은 Main Thread를 종료시키게 되면 생성된 2개의 쓰레드도 죽게 되므로
이를 막기위해 Main Thread에 무한루프를 걸어줍니다.
아래는 출력값 입니다.
Thread_1: 1
Thread_2: 1Thread_1: 2
Thread_1: 3
Thread_2: 2
Thread_1: 4
Thread_1: 5
Thread_2: 3
Thread_2: 4
Thread_2: 5