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中线程的更多信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |