Python限制for循环中的线程

2024-09-30 16:19:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将此循环限制为4个并发作业:

def testSSH(host, user, password, port):
s = pxssh.pxssh()
try:
    if not s.login (host, username=user, password=password, port=port):
        print(password)
        return False
    else:
        print(password)
        return True
except:
    print(password)
    return False




passes = "r", "1234", "12345", "123456!", "1234567", "a", "b", "e", "s", "A", "d", "66"

jobs = []
for passw in passes:
    thread = threading.Thread(target=testSSH, args=("localhost", "myuser", passw, "22",))
    jobs.append(thread)

for j in jobs:
        print(threading.active_count())
        j.start()

for j in jobs:
        j.join()

代码运行良好。然而,我似乎无法限制并发作业。 这个线程.活动\u计数()始终是过程的值。 有什么建议吗?我试过this question,但没什么用 谢谢!你知道吗


Tags: infalsehostforreturnport作业jobs
1条回答
网友
1楼 · 发布于 2024-09-30 16:19:43

好了,伙计们,我自己发现了一些东西:

threads = 0
def testSSH(host, user, password, port):
s = pxssh.pxssh()
try:
    if not s.login (host, username=user, password=password, port=port):
        print(password)
        return False
    else:
        print(password)
        return True
except:
    print(password)
    return False




passes = "r", "1234", "12345", "123456!", "1234567", "a", "b", "e", "s", "A", "d", "66"

jobs = []
for passw in passes:
    thread = threading.Thread(target=testSSH, args=("localhost", "myuser", passw, "22",))
    jobs.append(thread)

for j in jobs:
    threads = threading.active_count()
    while threads > 4:
    time.sleep(0.05)
    threads = threading.active_count()
        j.start()

for j in jobs:
        j.join()

希望这能帮助别人。。。你知道吗

相关问题 更多 >