我的代码中有两个功能。我想同时调用函数。我尝试了多线程概念,但是线程与GIL有一些问题。所以我计划采用多处理概念,它可以工作,但是与序列时间相比需要时间。并且过程将迭代除main函数之外的整个父类。有没有办法用父变量将函数作为单独的过程调用,而不是迭代整个父类?
对不起,我无法粘贴我的整个代码。在这里,我根据自己的情况粘贴了示例代码。
from flask import Flask, request, render_template,make_response
import pandas as pd
from flask_cors import CORS
import time
import queue;
from multiprocessing import Process
##Iterating when process is called
app = Flask(__name__)
CORS(app)
backpropagated_expert_data=pd.read_excel('sample.xlsx')
q = mp.Queue();
r = mp.Queue();
def detachedProcessFunction(wait_time):
i=0
while i<wait_time:
i = i+1
print("loop running %d" % i)
#time.sleep(1)
def detachedProcessFunction1(wait_time1):
i=0
while i<wait_time1:
i = i+1
print("loop running1 %d" % i)
#time.sleep(1)
@app.route('/start')
def start():
p = Process(target=detachedProcessFunction, args=(15, ))
p1 = Process(target=detachedProcessFunction1, args=(15, ))
p.start()
p1.start();
return 'a'
if __name__ == '__main__':
app.run(debug=True,threaded=True,use_reloader=False)
以上代码,启动脚本时Excel读取部分正在运行3次。如果我将excel读入Main函数,则它将运行1次,但是Processes找不到excel文件。目标参数在Process中的用途是什么,为什么它不作为流程单独调用提到的函数?
在这种情况下有人可以帮助吗?