私は、ユーザーが入力したピンを見つけるPythonを書いています.1つのこと以外はすべて正常に動作します。ピンが見つかるとスクリプトは存在しません。ピンを見つけたら、他のスレッドをすべて殺すことができる理由はありますか?ターゲットを見つけたらスレッドを停止するにはどうしたらいいですか?
#!/usr/bin/env python
#
#
#
from threading import Thread
from random import randint
from time import sleep
from sys import exit
from os import system
system('clear');sleep(0.7)
Pin = int(raw_input('Enter a pin: '))
def Up():
global Pin
for pin in xrange(1111,10000):
system('clear')
print pin
if pin == Pin:
system('clear')
print 'U Pin Found: %d'%pin;sleep(0.7)
for i in range(3):
exit()
def Down():
global Pin
pins = xrange(10000)
for pin in reversed(pins):
system('clear')
print pin
if pin == Pin:
system('clear')
print 'D Pin Found: %d'%pin;sleep(0.7)
exit()
def Random():
global Pin
while True:
pins = randint(1111,10000)
print pins
if pins == Pin:
system('clear')
print 'R Pin Found: %d'%pins;sleep(0.7)
exit()
Task1 = Thread(target=Up,args=())
Task2 = Thread(target=Down,args=())
Task3 = Thread(target=Random,args=())
Task1.start()
Task2.start()
Task3.start()
オフトピック:あなたは画面をクリアしている方法は非常に移植性がありません。 'os.system( 'clear')の代わりに' os.system( 'os.name ==' nt 'else' clear ') 'を使うことを検討してください。これはWindowsとLinuxの両方で動作します。 – martineau
@martineauそして、私はまったくそれをやりません。私はそうすることにその点を見ません。 – glglgl
@glglgl:私のコメントはあなたに向けられていませんでした。ポイントは_portability_です。これは、他のオペレーティングシステムの人々がコードを簡単に実行できるようにします(そしておそらく良い答えを提供します)。 – martineau