我想学习如何使用 python 在多线程中运行一个函数。换句话说,我有一长串参数要发送给可能需要一些时间才能完成的函数。我希望我的程序遍历参数并并行调用函数(无需等到函数从第一个参数完成)。
我从 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
关于python - 这个 python 示例中运行了多少个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51656853/