gpt4 book ai didi

python,如何增量创建线程

转载 作者:太空狗 更新时间:2023-10-30 00:28:35 25 4
gpt4 key购买 nike

我有一个大约 60,000 项的项目列表 - 我想向数据库发送查询以检查它们是否存在以及它们是否返回一些计算结果。我运行一个普通查询,同时逐一遍历列表,查询已经运行了最后 4 天。我想我可以使用线程模块来改进这一点。我做了这样的事情

if __name__ == '__main__':
for ra, dec in candidates:
t = threading.Thread(target=search_sl, args=(ra,dec, q))
t.start()
t.join()

我只测试了 10 个项目并且工作正常 - 当我提交了包含 60k 个项目的整个列表时,我遇到了错误,即“超出最大 session 数”。我想做的是一次创建 10 个线程。当第一组线程完成执行时,我发送另一个请求,依此类推。

最佳答案

您可以尝试使用多处理模块中提供的进程池。这是 python 文档中的示例:

from multiprocessing import Pool

def f(x):
return x*x

if __name__ == '__main__':
pool = Pool(processes=4) # start 4 worker processes
result = pool.apply_async(f, [10]) # evaluate "f(10)" asynchronously
print result.get(timeout=1) # prints "100" unless your computer is *very* slow
print pool.map(f, range(10)) # prints "[0, 1, 4,..., 81]"

http://docs.python.org/library/multiprocessing.html#using-a-pool-of-workers

尝试增加进程数,直到达到系统可以支持的最大值。

关于python,如何增量创建线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10063353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com