더북(TheBook)

threading 모듈은 멀티스레딩을 구현하는 데 필요합니다(#1). thread_main() 함수는 네 개의 스레드에서 실행할 함수입니다(#2). 인자를 보면 리스트 li와 정수 i를 받습니다. 정수 i는 리스트에서 요소의 인덱스 범위를 결정하는 데 사용합니다.

요소 개수가 1,000개라면 스레드가 네 개이므로 스레드 하나당 250개 요소를 맡아 연산합니다. 모든 스레드가 같은 리스트를 인자로 받되 정수 i는 0~3 스레드마다 다릅니다.

for 문으로 인덱스 범위를 설정해 순회하면서 각 인덱스 요소에 2를 곱합니다(#3). offset은 데이터 개수를 스레드 개수로 나눈 값입니다. 요소 개수가 1,000이고 스레드 수가 4이므로 250이 됩니다. 이때 i가 0이면 인덱스의 범위는 0~249입니다. i가 1이면 250~499, i가 2면 500~749, 3이면 750~999입니다.

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