프로젝트 중 특정 키워드로 텍스트 제너레이팅이 되는 동안 클라이언트에선 일정 시간 동안 일정 간격 으로 로딩 메시지를 출력하고
텍스트 제너레이팅이 끝나면 서버에 저장 후 클라이언트에서 저장된 DB를 요청하면 서버에서 출력해주는 작업이 있는데
유동적으로 진행되어야 할 것 같아 고민이 많다. 아직 어떤 식으로 해결할지 결정하진 않았지만 스레드 thread 모듈을 쓸 가능성이 높아서 리마인드할 겸 메모.
스레드는 프로그램 내에서 동시에 여러 작업을 수행하기 위해 사용되는 다중 쓰레드 프로그래밍 모듈이다.
스레드는 threading 모듈을 사용하여 스레드를 생성하고 관리할 수 있다.
스레드는 독립적인 실행 흐름을 가지며, 여러 스레드가 동시에 실행되면서 작업을 병렬로 처리할 수 있음.
주요 기능과 클래스:
start()
: 스레드 시작join()
: 해당 스레드에서 실행되는 함수가 종료될 때까지 기다리기. timeout=
인자로 특정 시간까지만 기다리게 할 수 있음. 타임아웃을 초과해도 예외를 일으키지 않으니 주의is_alive()
: 해당 스레드가 동작 중인지 확인name
: 스레드의 의름ident
: 스레드 식별자. 정수값임naive_id
: 스레드의 고유 식별자daemon
: 데몬 스레드 여부import threading
def my_fuction():
pass
thread = threading.Thread(target=my_fuction)
thread.start()
import threading
counter = 0
counter_lock = threading.Lock()
def increment_counter():
global counter
with counter_lock:
counter += 1
threads = []
for _ in range(10):
thread = threading.Thread(target=increment_counter)
threads.append(thread)
thread.start()
for thread in threads:
thread.join()
print("Counter value:", counter)