我想使用多线程运行两个循环。两个循环的迭代应该给出100的总和。 例如:
def loopA():
for i in xrange(1,100):
Do A
def loopB():
for j in xrange(1,100):
Do B
现在任何给定时间的总和i + j应为100
threadA = Thread(target = loopA)
threadB = Thread(target = loobB)
threadA.run()
threadB.run()
因此,当循环A运行一次时,循环B应同时运行99次。(i + j = 100) 循环A运行两次,循环B应同时运行98次。
这应该继续,直到循环A运行99次,循环B只运行一次。
答案 0 :(得分:1)
让我们首先从图片中删除线程,因为听起来甚至你并不确定你想要做什么。让我们也停止混淆地命名它们,而是将玫瑰称为玫瑰。
def encrypt(s, n):
"""Runs string s through n rounds of encryption"""
for _ in range(n):
s = some_encryption_method(s)
return s
def decrypt(s, n):
"""Runs string s through n rounds of decryption"""
for _ in range(n):
s = some_decryption_method(s)
return s
从这里开始,很清楚如何继续。
for encrypt_rounds in range(101): # 0 -> 100 inclusive
decrypt_rounds = 100 - encrypt_rounds
encrypted_s = encrypt(some_string, encrypt_rounds)
decrypted_s = decrypt(some_string, decrypt_rounds)
为什么要在线程中执行此操作?目前尚不清楚您使用线程获得了什么,但 非常 明确表示失去同步性是个问题。让我们保持简单,然后完全放弃线程,直到我们知道我们需要它为止!