python扭曲线程
发布时间:2020-12-20 12:37:11 所属栏目:Python 来源:网络整理
导读:您好,请告诉我如何使用线程池在不同的线程中使用不同的功能 扭曲……说 我有一个id列表x = [1,2,3,4]其中1,…等是id(我从数据库得到,每个都包含一些磁盘中的python脚本). 我想做的是 在列表上扫描x遍历并在不同的线程中运行每个脚本,直到它们完成 Thanx Cald
|
您好,请告诉我如何使用线程池在不同的线程中使用不同的功能
扭曲……说 我有一个id列表x = [1,2,3,4]其中1,…等是id(我从数据库得到,每个都包含一些磁盘中的python脚本). 我想做的是 在列表上扫描x遍历并在不同的线程中运行每个脚本,直到它们完成 Thanx Calderone,你的代码对我帮助很大. 我很少有人怀疑我可以通过这种方式调整线程池大小. from twisted.internet import reactor reactor.suggestThreadPoolSize(30) 说所有30个可用线程都忙碌列表中仍有一些ID(字典或元组) 解决方法
Twisted中的线程主要通过twisted.internet.threads.deferToThread使用.或者,有一个更灵活的新界面twisted.internet.threads.deferToThreadPool.无论哪种方式,答案大致相同.迭代您的数据并使用其中一个函数将其分派给一个线程.你可以从任何一个延迟回来,它会告诉你什么是结果,什么时候可用.
from twisted.internet.threads import deferToThread
from twisted.internet.defer import gatherResults
from twisted.internet import reactor
def double(n):
return n * 2
data = [1,4]
results = []
for datum in data:
results.append(deferToThread(double,datum))
d = gatherResults(results)
def displayResults(results):
print 'Doubled data:',results
d.addCallback(displayResults)
d.addCallback(lambda ignored: reactor.stop())
reactor.run()
您可以在threading howto中阅读有关Twisted中线程的更多信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
