【发布时间】:2022-02-04 20:00:45
【问题描述】:
我对 Python 还是很陌生。我有一些使用Thread 的代码,它应该停止,直到满足条件。
当我在控制台中按下键 1 时,脚本会停止,而不是在 test1 == 1: 条件下运行该部分。
满足条件时,我想在现有会话中每个线程仅运行 1 次脚本。
代码:
def test()
#some code
test1 = 0
while (test1 == 1): #Wait until is set 1 in if __name__ == '__main__': and run the code only 1 time
response = session.get('https://www.example.com/')
opts = ChromeOptions()
opts.add_experimental_option("detach", True)
driver = Chrome(chrome_options=opts)
driver.get(response.url + '#/checkout/login')
print "Checking Out..."
test1+=1
def Main():
t1 = Thread(target=test, args=())
t1.start()
if __name__ == '__main__':
test = input('How many tasks you want to start? \n')
for i in range(test):
Main()
test1 = input('Proceed? if yes press 1 \n')
【问题讨论】:
-
test1 = 0 ... while (test1 == 1):,循环永远不会运行,因为test1不等于 1 -
while不代表wait -
在脚本的最后一行你可以看到,我设置了 test1 = 1,所以循环应该运行然后
-
你永远不会到达
test1 +=1,因为你从来没有进入循环开始。 -
您似乎期望
while(p):循环直到条件为真。那完全是倒退。如果您希望循环运行直到条件为真,您希望它在 false 时运行。因此,您似乎期望while(p)的行为类似于while(not p)。在你的情况下,你似乎真的想要while(test1 != 1):
标签: python multithreading