我想学习如何使用Python在多线程中运行函数。换句话说,我有一个长列表的参数,我想发送到一个可能需要时间才能完成的函数。我希望我的程序循环遍历这些参数,并并行调用函数(无需等待函数完成第一个参数)。
我从这里找到了以下示例代码:
我从这里找到了以下示例代码:
import Queue
import threading
import urllib2
# called by each thread
def get_url(q, url):
q.put(urllib2.urlopen(url).read())
theurls = ["http://google.com", "http://yahoo.com"]
q = Queue.Queue()
for u in theurls:
t = threading.Thread(target=get_url, args = (q,u))
t.daemon = True
t.start()
s = q.get()
print s
我的问题是:
1)通常我知道我需要指定我希望程序并行运行的线程数量。但是以上代码中没有特定数量的线程。
2)线程的数量因设备而异(取决于处理器、内存等)。由于此代码未指定任何线程数量,程序如何知道正确的并发运行线程数?
for
循环中创建。 - Sraw