코드 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………(중략)