내 애플 리케이션 파이썬에서 루프 싶지만 종료하는 방법이 필요합니다. 콘솔에서 입력을 얻고 q 글자를 스캔하고 내 앱이 종료 될 준비가되었을 때 빠른 방법이 있습니까? C에서 나는 단지 cin, 스캔, 글로벌 종료 var, 변경, 잠그기 및 스레드를 종료 할 때까지 기다리는 pthread를 만들 것입니다. 내 애플 리케이션이 파일 또는 파일을 덤핑 할 때 종료하는 것을 허용합니다. 파이썬에서이 작업을 동일한 방식으로 수행하고 크로스 플랫폼이 될 것인가? (나는 창 특정 파이썬에서 글로벌 단일 인스턴스를 참조하십시오)python console intrupt? 그리고 크로스 플랫폼 스레드
0
A
답변
1
스레드 클래스를 만들기 위해 스레드 모듈을 사용하십시오.
import threading;
class foo(threading.Thread):
def __init__(self):
#initialize anything
def run(self):
while True:
str = raw_input("input something");
class bar:
def __init__(self)
self.thread = foo(); #initialize the thread (foo) class and store
self.thread.start(); #this command will start the loop in the new thread (the run method)
if(quit):
#quit
1
새 스레드 만들기가 쉽습니다. 스레딩 모듈이 도움이됩니다. 데몬틱하게 만들 수 있습니다 (프로그램을 종료하는 다른 방법이있는 경우). I 도 잠금없이 변수를 변경할 수 있다고 생각합니다. - 파이썬은 자체 스레드를 구현하며, 나는 self.running = False
과 같은 것이 원자적일 것입니다.
새 스레드를 킥오프하는 가장 간단한 방법은 threading.Thread(target=)
함께 :
# inside your class definition
def signal_done(self):
self.done = True
def watcher(self):
while True:
if q_typed_in_console():
self.signal_done()
return
def start_watcher(self):
t = threading.Thread(target=self.watcher)
t.setDaemon(True) # Optional; means thread will exit when main thread does
t.start()
def main(self):
while not self.done:
# etc.
당신이, 당신의 스레드가 똑똑 할 당신이 자신을 threading.Thread
을 하위 클래스 등, 자신의 상태에있는 경우. 문서에는 더 많은 것이 있습니다.
[관련 : 파이썬 스레드가 여러 개인 경우에도 파이썬 실행 파일 자체는 단일 스레드입니다.]