我的工作需要大量数据库插入和提取。我想使用多处理来加速工作。
被调用的进程确实有一些我期望打印的变量语句,这些表明作业按顺序运行 而不是同时。
import rd_functions as rd
import multiprocessing
import sys
start_pos = int(sys.argv[1])
end_pos = int(sys.argv[2])
cores = int(sys.argv[3])
if end_pos == start_pos:
single_core = 0
else:
single_core = (end_pos - start_pos) / cores
core1_start = start_pos
core1_end = start_pos + single_core
jobs = []
p = multiprocessing.Process(target=rd.backdate_worker(core1_start,core1_end))
jobs.append(p)
if cores >= 2:
core2_start = core1_start + single_core + 1
core2_end = core2_start + single_core
p = multiprocessing.Process(target=rd.backdate_worker(core2_start, core2_end))
jobs.append(p)
...
if cores >= 8:
core8_start = core7_start + single_core + 1
core8_end = core8_start + single_core
p = multiprocessing.Process(target=rd.backdate_worker(core8_start, core8_end))
jobs.append(p)
p.start
有更好的方法吗? 谢谢