스레드는 동시에 여러 작업을 수행할 수 있게 해주는데, 이는 여러 작업이 동시에 진행되는 것처럼 보이도록 만들어줍니다. 그러나 주의할 점은 스레드 간에 자원 공유와 관련된 문제가 발생할 수 있으므로 적절한 동기화(Synchronization)가 필요합니다.
join 메서드는 메인 스레드가 호출한 스레드의 실행이 완료될 때까지 기다리도록 하는 역할을 합니다. 즉, 스레드가 join 메서드를 만나면 해당 스레드의 작업이 끝날 때까지 메인 스레드는 대기 상태가 됩니다.
위 코드에서 my_thread.join() 부분은 my_thread 스레드가 종료될 때까지 기다립니다. my_function 함수에서는 3초 동안 대기 후 "스레드가 종료됨"을 출력하므로, 이후에 메인 스레드에서 "모든 스레드가 종료됨"이 출력됩니다
daemon 속성을 True로 설정하면, 해당 스레드가 데몬 스레드(daemon thread)로 설정됩니다. 데몬 스레드는 백그라운드에서 실행되는 스레드로, 메인 스레드가 종료되면 데몬 스레드는 강제적으로 종료됩니다. 이 속성을 설정하면 메인 스레드가 종료될 때 스레드를 명시적으로 join하지 않아도 됩니다.
위 코드에서 my_thread.daemon = True를 통해 my_thread 스레드를 데몬 스레드로 설정했습니다. 메인 스레드가 종료될 때 my_thread 스레드는 강제로 종료되며, join을 호출하지 않아도 됩니다. 이 예제에서는 "메인 스레드 종료됨"이 먼저 출력되고, 데몬 스레드의 작업이 완료되지 않은 채로 스레드가 종료됩니다.
'python3 selenium' 카테고리의 다른 글
Xpath Axes (1) | 2023.12.09 |
---|---|
python schedule & Thread 사용 방법 및 예제 (1) | 2023.12.08 |
python selenium pyqt5 창닫힘 이벤트 추가 (1) | 2023.12.08 |
Tesseract, PyTesseract 설치방법 (0) | 2023.12.07 |
python selenium 서버 시간 가져오기 & timer (0) | 2023.11.30 |