더북(TheBook)

코드 10-2 process_thread/multithread_exam.py ②

num_elem = 1000   # 리스트 요소 개수
num_thread = 4    # 스레드 개수

# 오프셋 = 리스트 요수 개수 // 스레드 개수
# 스레드 함수에서 연산을 담당한 인덱스 범위를 구하는 데 쓰인다
offset = num_elem // num_thread

li = [i+1 for i in range(num_elem)]

# 스레드를 담을 리스트
threads = [ ]               #4
for i in range(num_thread): #5
    # 스레드 객체를 생성
    # target은 실행할 스레드 함수
    # args는 전달할 인자 목록
    th = threading.Thread(target = thread_main, args = (li, i))  #6
    threads.append(th)

for th in threads:
    # 스레드 실행 시작
    th.start()              #7
for th in threads:
    # 스레드 실행 완료 대기
    th.join()               #8

print(li)

실행결과 [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166………(중략)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.