Python - Multiprocessing Error cannot start a process twice

2024/11/14 10:05:50

I try to develop an algorithm using multiprocessing package in Python, i learn some tutorial from internet and try to develop an algorithm with this package. After looking around and try my 'hello world' using Process, Queue and Pool, i try to implement the Queue on this code

def main(queue):d = ...k = ...filename, patname, txt, pat = ...R = queueprocesses = []for j in range(k-1):processes.append(Process(target=sim, args=(int(j * d), int((j+1) * d), txt, pat, filename, patname, R, )))# processes.append(Process(target=sim, args=(int(j * d), len(txt), txt, pat, filename, patname, R, )))       for pr in processes:pr.start()for pr in processes:pr.join()while not R.empty():print (R.get())if __name__ == '__main__':R = Queue()main(R)

But, got error like:

AssertionError: Cannot start a process twice

Can somebody please help with this issue

full output:

sim(e_original.txt, e_modify0%.txt) = 0.000000
sim(e_original.txt, e_modify0%.txt) = 0.000000
1
Traceback (most recent call last):File "measure.py", line 108, in <module>main()File "measure.py", line 98, in mainpr.start()File "C:\Python27\lib\multiprocessing\process.py", line 120, in startassert self._popen is None, 'cannot start a process twice'
AssertionError: cannot start a process twice
sim(e_original.txt, e_modify0%.txt) = 0.000000
Answer

You get the assertion because you call start on a single Process object multiple times. Your example has an indentation error with that second process.append and I'm assuming that the line shouldn't be there at all. Notice that the for loop where you start the processes is inside the upper for loop so it is executed for every process you create. On the second time through the loop, for example, you create the second process and then try to start the first process again. Just move the start code out of the upper for loop.

processes = []for j in range(k-1):processes.append(Process(target=sim, args=(int(j * d), int((j+1) * d), txt, pat, filename, patname, R, )))for pr in processes:pr.start()for pr in processes:pr.join()while not R.empty():print (R.get())
https://en.xdnf.cn/q/71512.html

Related Q&A

Printing unicode number of chars in a string (Python)

This should be simple, but I cant crack it. I have a string of Arabic symbols between u\u0600 - u\u06FF and u\uFB50 - u\uFEFF. For example غينيا واستمر العصبة ضرب قد. How do I pri…

Pandas report top-n in group and pivot

I am trying to summarise a dataframe by grouping along a single dimension d1 and reporting summary statistics for each element of d1. In particular I am interested in the top n (index and values) for …

virtualenv --no-site-packages is not working for me

virtualenv --no-site-packages v1cd v1\Scriptsactivate.batpython -c "import django" # - no problem hereWhy does it see the Django package??? It should give me an import error, right?

pandas: Group by splitting string value in all rows (a column) and aggregation function

If i have dataset like this:id person_name salary 0 [alexander, william, smith] 45000 1 [smith, robert, gates] 65000 2 [bob, alexander] …

Seaborn Title Position

The position of my graph title is terrible on this jointplot. Ive tried moving the loc = left, right, and center but it doesnt move from the position its in. Ive also tried something like ax.title.set_…

Expand/collapse ttk Treeview branch

I would like to know the command for collapsing and expanding a branch in ttk.Treeview.Here is a minimalistic example code:#! coding=utf-8 import tkinter as tk from tkinter import ttkroot = tk.Tk() tre…

Uploading images to s3 with meta = image/jpeg - python/boto3

How do I go about setting ContentType on images that I upload to AWS S3 using boto3 to content-type:image/jpeg?Currently, I upload images to S3 using buto3/python 2.7 using the following command:s3.up…

How to use win environment variable pathlib to save files?

Im trying to use win environment variable like %userprofile%\desktop with pathlib to safe files in different users PC.But Im not able to make it work, it keep saving in on the running script dir.import…

Difference between starting firestore emulator through `firebase` and `gcloud`?

What is the difference between starting the firestore emulator through: firebase emulators:start --only firestoreand: gcloud beta emulators firestore startBoth options allow my python app to achieve co…

PyInstaller icon option doesnt work on Mac

I ran the following command on my mac and created an .app file.pyinstaller --icon icon.icns --noconsole -n testApp main.pyHowever, the generated .app file does not show the icon.icon.icns is specified …