我试图在python中使用线程从雅虎金融获得符号列表的最后值。我读了线程纪录片,但我不理解这个概念
#!/usr/bin/python
from threading import Thread
import urllib
import re
def th(ur):
base = 'https://finance.yahoo.com/q?s='+ur
htmlfile = urllib.urlopen(base).read()
regex = '<span id="yfs_l84_[^.]*">(.+?)</span>'
result = re.findall(regex,htmlfile)
print result[0]
symbollist = open("symbollist.txt").read().splitlines()
threadlist = []
for u in symbollist:
t = Thread(target=th,args=(u,))
t.start()
threadlist.append(t)
for b in threadlist:
b.join()
我有一个包含3000个符号的符号列表我不知道我应该使用多少线程或者我应该在哪里锁定线程
所有名为"th"的函数中的代码都需要是线程安全的。
如果其中任何一个不是,您需要锁定这些部分以阻止"线程"问题,例如竞态条件。
为什么要为3000个符号使用3000个线程?
如果你想通过使用多线程对多核机器的性能产生良好的影响,在我看来,你应该使用大约8或10个线程。每个线程执行numberOfJob/numberOfThread任务。
限制一次运行的最大线程数的正确方法?
最大线程限制实际上是一个不相关的问题为Python/Linux?
多少线程算太多?