2 개의 스레드가있는 파이썬 응용 프로그램이 있습니다. 각 스레드는 별도의 GUI 내에서 작동합니다. GUI는 차단하지 않고 독립적으로 작동해야합니다. thread_1이 thread_2에서 발생하는 이벤트를 트리거하는 방법을 파악하려고합니다.Python 스레딩 질문
다음은 불필요한 리소스를 사용하지 않고도 function foo가 가능한 한 빨리 가장 간단하고 우아한 방법으로 함수 모음을 시작하도록하려는 일부 코드입니다. 아래는 내가 생각해내는 것입니다.
bar_trigger=False #global trigger for function bar.
lock = threading.Lock()
class Thread_2(threading.Thread):
def run(self):
global lock, bar_trigger
while(True):
lock.acquire()
if bar_trigger==True:
Thread_2.bar() #function I want to happen
bar_trigger=False
lock.release()
time.sleep(100) #sleep to preserve resources
#would like to preserve as much resources as possible
# and sleep as little as possible.
def bar(self):
print "Bar!"
class Thread_1(threading.Thread):
def foo(self):
global lock, bar_trigger
lock.acquire()
bar_trigger=True #trigger for bar in thread2
lock.release()
더 좋은 방법이 있나요? Threading_1 내에서 thread_2의 메서드를 가장 잘 트리거하는 방법에 대한 조언이 있으므로 스레드 전문가는 아닙니다.
여러 스레드에서 GUI 프로그래밍을 지원하는 GUI 프레임 워크에 대해 잘 모릅니다. 어떤 프레임 워크를 사용하고 있습니까? –