在sequen中运行的python中的多处理

2024-10-04 09:20:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我的工作需要大量的数据库插入和提取。我想用多重处理来加速工作。在

被调用的进程确实有一些变量语句,我希望这些语句被打印出来,这些语句表示作业是按顺序运行的 而不是同时进行。在

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

有更好的方法吗? 谢谢你


Tags: poscoreimportsysjobsrd语句multiprocessing