이 글은 주로 Python 프로그래밍에서 이벤트 객체의 사용법을 소개하고, 스레드 통신에서 이벤트 객체의 역할과 사용법을 예제 형식으로 분석합니다. 필요한 친구들이 참고할 수 있습니다.
에 있는 예제 이 문서에서는 Python 프로그래밍에서 이벤트 개체의 사용법을 설명합니다. 자세한 내용은 다음과 같습니다.
Python은 스레드 간 통신을 위한 이벤트 개체를 제공합니다. 이는 스레드에 의해 설정된 신호 플래그입니다. 스레드는 다른 스레드가 신호를 보낼 때까지 기다립니다. 스레드가 true로 설정됩니다. 이는 Windows 이벤트와 정반대인 것 같습니다. Event 개체는 스레드 간의 통신을 실현하기 위한 간단한 스레드 통신 메커니즘을 구현합니다.
1. 신호 설정
Event 개체 내부의 신호 플래그를 true로 설정하려면 Event의 set() 메서드를 사용하세요. Event 개체는 내부 신호 플래그의 상태를 확인하기 위해 isSet() 메서드를 제공합니다. 이벤트 개체의 set() 메서드를 사용하면 isSet() 메서드가 true를 반환합니다.
2 . 신호 지우기
Event 객체 내부의 신호 플래그를 지우려면 Event 객체의clear() 메소드를 사용하십시오. 즉, Event의 Clear 메소드를 사용하는 경우에는 false로 설정하십시오. , isSet() 메서드는 false를 반환합니다
3. Waiting
Event 개체의 wait 메서드는 내부 신호가 true인 경우에만 빠르게 실행되고 반환을 완료합니다. . Event 객체의 내부 신호 플래그가 false인 경우 wait 메서드는 반환하기 전에 true가 될 때까지 기다립니다.
이벤트를 사용하여 작업자 스레드를 정상적으로 종료할 수 있습니다. 샘플 코드는 다음과 같습니다.
# make thread exit nicely class MyThread9(threading.Thread): def __init__(self): threading.Thread.__init__(self) def run(self): global event while True: if event.isSet(): logging.warning(self.getName() + " is Running") time.sleep(2) else: logging.warning(self.getName() + " stopped") break; event = threading.Event() event.set() def Test9(): t1=[] for i in range(6): t1.append(MyThread9()) for i in t1: i.start() time.sleep(10) q =raw_input("Please input exit:") if q=="q": event.clear() if __name__=='__main__': Test9()
위 내용은 Python 프로그래밍을 이용한 이벤트 객체의 사용예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!