连续运行线程的Python
我正在试验用Python并行运行代码 我的用例如下:我有一个需要运行数千次的进程。但是由于它依赖于下载,我需要注意我在同一时间运行了多少次,我每分钟的请求数量是有限的。因此,我希望始终同时运行该函数10次,每次完成一次,我希望启动一个新进程 在做了一些快速阅读线程模块似乎是我要找的。然而,一些小实验似乎表明Python不会并行运行线程 当我运行以下代码时连续运行线程的Python,python,python-multithreading,Python,Python Multithreading,我正在试验用Python并行运行代码 我的用例如下:我有一个需要运行数千次的进程。但是由于它依赖于下载,我需要注意我在同一时间运行了多少次,我每分钟的请求数量是有限的。因此,我希望始终同时运行该函数10次,每次完成一次,我希望启动一个新进程 在做了一些快速阅读线程模块似乎是我要找的。然而,一些小实验似乎表明Python不会并行运行线程 当我运行以下代码时 import threading import time wait = 0.4 def f(x): for j in range(1,1
import threading
import time
wait = 0.4
def f(x):
for j in range(1,100):
time.sleep(wait)
print(x)
threading.Thread(target = f(1)).start()
threading.Thread(target = f(2)).start()
我进入命令行
1
1
1
1
1
直到100个字母全部打印出来,才有一个字母2出现
这是怎么来的?理论上f1和f2应该同时运行,对吗?这条线
threading.Thread(target = f(1)).start()
基本上说,启动一个新线程并在其中执行f1的结果
您需要的是启动一个新线程并使用其中的参数1执行f,该参数转换为
threading.Thread(target = f, args=(1,)).start()
这条线
threading.Thread(target = f(1)).start()
基本上说,启动一个新线程并在其中执行f1的结果
您需要的是启动一个新线程并使用其中的参数1执行f,该参数转换为
threading.Thread(target = f, args=(1,)).start()
在创建线程时调用函数。经典的dupeAlso注:Range100将打印99次,而不是100次;第二个数字是它在此之前停止的限制。您在创建线程时正在调用函数。经典的dupeAlso注:Range100将打印99次,而不是100次;第二个数字是它在此之前停止的限制。还要注意,f1返回None,这恰好是一个有效的目标。目标是run方法要调用的可调用对象。默认为“无”,表示不调用任何内容。-还请注意,f1返回None,这恰好是一个有效的目标。target是run方法要调用的可调用对象。默认为“无”,表示不调用任何内容。-重点矿山