这个python示例中运行了多少个线程?

我想学习如何使用
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

点赞