如何在多进程的单独过程中更新共享变量?

时间:2018-10-16 18:11:33

标签: python python-3.x parallel-processing python-multiprocessing

我正在尝试使用python实现并行性。

我正在使用VS 2017和python版本3.7。

我的代码如下:

viewDidLayoutSubviews

在这里,我尝试更新def do_parallelization(self, link_list): cpus = multi.cpu_count() workers = [] page_bins = self.__get_chunks(cpus, link_list) array_s = Array(c_wchar_p,3) for cpu in range(cpus): #sys.stdout.write("CPU " + str(cpu) + "\n") # Process that will send corresponding list of pages # to the function perform_extractionpage_bins[cpu] try: worker = multi.Process(name=str(cpu), target= self.get_page_content_para, args=(page_bins[cpu], array_s)) worker.daemon = True workers.append(worker) except Exception as e: print(e) for worker in workers: worker.start() for worker in workers: worker.join() print (array_s[:]) def get_page_content_para(self, link_list, array_s): array_s[:] = ["up", "down", "left"] ,但是在调用函数结束时,我打印了输出如下的数组:

Array

我已经在互联网上进行搜索,但是所有人都说它应该更新变量。 我想念什么吗?

1 个答案:

答案 0 :(得分:0)

放进去

worker.start()
worker.join()

worker = multi.Process(name=str(cpu), target= self.get_page_content_para, args=(page_bins[cpu], array_s))

但是当我提到时,是真的在做并行吗?

据我所知,何时按上述方式重写它是一种方式执行,我的意思是一个进程开始,结束它,然后启动第二个进程。

这是并行性吗?

有人可以解释吗?