파이썬에서 스레딩을 배우기위한 스크립트를 만들려고하고 있는데 스레드에서 for 루프를 막을 수 없습니다. 현재, pyInstaller를 사용하여 스크립트를 컴파일하고 있고, 알고있는 Thread 프로세스를 끝내는 것이 최선의 방법이 아니라면, 누군가 내가 명령에 대한 스레드를 종료하는 방법을 설명 할 수 있습니까? 나는 다른 많은 질문을 읽었지 만, 스레드를 '올바른'방법으로 멈추는 방법을 이해할 수없는 것 같습니다. 기능은 지금은 괜찮은 Tkinter에서 만든 GUI에 의해 호출파이썬에서 스레드의 for 루프를 멈추는 방법?
class Thread(Thread):
def __init__(self, command, call_back):
self._command = command
self._call_back = call_back
super(Thread, self).__init__()
def run(self):
self._command()
self._call_back()
def test():
i = 20
for n in range(0,i):
#This is to keep the output at a constant speed
sleep(.5)
print n
def thread_stop():
procs = str(os.getpid())
PROCNAME = 'spam.exe'
for proc in psutil.process_iter():
if proc.name == PROCNAME:
text = str(proc)[19:]
head, sep, tail = text.partition(',')
if str(head) != procs:
subprocess.call(['taskkill', '/PID', str(head), '/F'])
: 여기를 테스트하기 위해 현재로서는 사용하고있는 코드입니다.
모든 것을 읽지 않으려면 다음과 같이하십시오. Python 스레드에서 for 루프가있을 때 '올바른 방법'스레드를 중지하려면 어떻게합니까? 감사!
편집 : 미안하지만, 내가 가장 중요하다고 생각한 코드를 가져 왔습니다. 대신, 여기 전체 코드가 있습니다 (파이썬을 배우기 위해 사용하는 텍스트 메신저입니다. 그러나 위의 코드는 쓰레드를 풀기 전에 먼저 쓰는 것입니다). http://pastebin.com/qaPux1yR
아무것도 실제로 테스트'를 호출하지 않습니다()'. 관련 코드를 모두 알려주십시오. – Amber
@Amber 죄송합니다. 게시물을 편집했습니다. –
당신은 스레드를 죽이려고합니까? 루프 종료 신호를 보낼 수 없습니까? –