본문 바로가기
컴퓨터/Python

[Python] 파이썬, threading 간단 예제

by sjblog 2023. 3. 27.
반응형

파이썬을 이용하며, 속도를 개선하기 위한 방법으로 병렬처리를 할 수 있습니다.

 

1. threading 모듈

import threading

def print_numbers(n, m):
    for i in range(n, m):
        print(i)

threads = []
for i in range(10):
    t = threading.Thread(target=print_numbers, args=(i, 11))
    t.start()
    threads.append(t)

for t in threads:
    t.join()

threading 모듈은 스레드 기반, multiprocessing 모듈은 프로세스 기반으로 동작합니다. 따라서, 속도 차이가 발생할 수 있습니다.

 

일반적으로, CPU 바운드 작업(계산)은 multiprocessing을, I/O 바운드 작업(파일 입출력)은 threading을 사용하는 것이 성능이 더 좋을 수 있습니다.

 

이는 스레드가 프로세스와 달리 메모리를 공유하기 때문에, I/O 작업의 대기 시간이 발생할 때 다른 스레드가 동시에 작업을 수행할 수 있기 때문입니다.

 

2. threading return 값 가져오기

import threading

class MyThread(threading.Thread):
    def __init__(self, arg1, arg2):
        super().__init__()
        self.arg1 = arg1
        self.arg2 = arg2
        self.result = None

    def run(self):
        # 스레드에서 실행될 코드
        self.result = self.arg1 + self.arg2

    def get_result(self):
        return self.result

# 스레드 생성
t1 = MyThread(1, 2)
t2 = MyThread(3, 4)

# 스레드 실행
t1.start()
t2.start()

# 스레드가 종료될 때까지 대기
t1.join()
t2.join()

# 스레드 결과 값 출력
print("Thread 1 result:", t1.get_result())
print("Thread 2 result:", t2.get_result())

 

3. multiprocessing 모듈

https://sjblog1.tistory.com/74

 

[Python] 파이썬, multiprocessing 간단 예제

파이썬을 이용하며, 속도를 개선하기 위한 방법으로 병렬처리를 할 수 있습니다. 병렬처리는 여러 개의 CPU 코어를 사용하여 동시에 작업을 처리하는 방법입니다. 1. Pool import multiprocessing def calcul

sjblog1.tistory.com

 

반응형