我想学习如何使用
python在多线程中运行函数.换句话说,我有一长串参数,我想发送给一个可能需要时间才能完成的函数.我希望我的程序循环遍历参数并在并行上调用函数(无需等到函数从forst参数完成).
我从here找到了这个示例代码:
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循环中创建. for循环执行两次,因为在theurls中有两个元素.这也回答了你的另外两个问题.因此,您最终在程序中有两个线程
加上主循环线程
总计3