我有一个包含表名的列表,假设列表的大小为n。现在我有n台服务器,所以我打开了n个对应于每个服务器的游标,它们也在另一个列表中。现在,对于每个表,我想调用一个特定的函数,它将参数作为这两个列表
templst = [T1,T2,T3,T4,T5]
curlst = [cur1,cur2,cur3,cur4,cur5]
for x in range(len(templst)):
for y in range(len(curlst)):
if( x == y):
print "extracting of table ",templst[x]
extract_single(curlst[y], tempst[x]);
我认为上面的代码不会并行运行,或者不会同时启动每个游标
我需要运行extract_single parallel for curi,用于对应的Ti,在本例中,我的值是1到5。怎么做? 如何使进程并行运行
您可以使用线程来完成此工作
这只是一个例子:
你可以从这里读到更多
https://www.oracle.com/technical-resources/articles/embedded/vasiliev-python-concurrency.html
您可以使用asyncio。(文件可在here找到)
现在,无论何时调用此函数,都将并行运行,而不会将主程序置于等待状态。您也可以使用它来并行化for循环。当调用for循环时,虽然循环是顺序的,但每次迭代都会在解释器到达主程序时与主程序并行运行。在您的情况下,只需添加
@background
签名即可将函数包装为在后台运行,如下所示:然后,只需向函数定义中添加
@background
签名,就可以在不进行任何修改的情况下使用代码并行运行例如:
这将产生以下输出:
相关问题 更多 >
编程相关推荐