Python에서 스레드 조인
Manav Narula
2022년1월22일
멀티스레딩을 통해 완전한 CPU 최적화를 얻을 수 있습니다.
스레드는 과도한 메모리 오버헤드를 필요로 하지 않으며 여러 스레드도 정보를 통신하고 공유할 수 있습니다. Python에서는 threading
모듈을 사용하여 스레드로 작업합니다.
이제 Python의 스레드와 함께 join()
메서드에 대해 논의할 것입니다. 이 함수를 사용하여 해당 스레드가 종료될 때까지 호출 스레드를 차단합니다.
일반적으로 종료되거나 일부 예외 및 시간 초과로 인해 종료될 수 있습니다. 시간 초과 값은 필요한 경우 join()
함수에서도 언급할 수 있습니다.
이제 예를 들어 이에 대해 논의해 보겠습니다.
import threading
import time
class sample(threading.Thread):
def __init__(self, time):
super(sample, self).__init__()
self.time = time
self.start()
def run(self):
print(self.time, " starts")
for i in range(0, self.time):
time.sleep(1)
print(self.time, "has finished")
t3 = sample(3)
t2 = sample(2)
t1 = sample(1)
t3.join()
print("t3.join() has finished")
t2.join()
print("t2.join() has finished")
t1.join()
print("t1.join() has finished")
출력:
3 starts
2 starts
1 starts
1 has finished
2 has finished
3 has finished
t3.join() has finished
t2.join() has finished
t1.join() has finished
위의 예에서 t3
이 완료되면 다른 두 스레드가 종료됩니다. 그러나 join()
함수는 주 스레드를 보유하고 다른 스레드는 종료될 때까지 기다립니다.
작가: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn