ピンを推測するスクリプトを作成しましたが、それは動作しますが、スクリプトはsleepコマンドを無視し、threading.lock()コマンドも機能しません。私のスクリプトを見て、スクリプトを改善する方法を教えてください。リストの最後にPythonでのマルチスレッド化は?
#!/usr/bin/env python -w
#
#
import time
import random
import os
import threading
import sys
lock = threading.Lock()
def Random(name,repeat):
lock.acquire
while repeat != 0:
Pin = random.randint(0,9999)
print "[+] Trying: %d"%Pin;time.sleep(3)
if Pin == 5656:
os.system("clear");print '[+] Pin Found: %d' %Pin;time.sleep(3)
sys.exit()
repeat-= 1
if lock.acquire():
lock.release()
def Order(name,repeat):
lock.acquire
while repeat != 0:
Pin = random.randint(0,9999)
print "[!] Trying: %d"%Pin;time.sleep(3)
if Pin == 5656:
os.system("clear");print '[+] Pin Found: %d' %Pin;time.sleep(3)
sys.exit()
repeat-= 1
if lock.acquire():
lock.release()
def Main():
Brute_1 = threading.Thread(target=Random,args=('Random_Guess',10))
Brute_2 = threading.Thread(target=Order,args=('Order_Guess',10))
Brute_1.start()
Brute_2.start()
if __name__=='__main__':
Start = raw_input("Press Enter To Start")
while 1:
os.system("clear");
Main()
あなたは関数の先頭で 'acquire'を呼び出すことさえせず、funcの終わりに呼び出すべきではありません。私は 'acquire'と' release'を直接呼び出すつもりはありません。 'with'ステートメントでロックを使用してください。 – pasztorpisti