Why does Queue.Queue have a task_done method while multiprocessing.Queue has no such method?
Why does multiprocessing.Queue have no task_done method
4.3k views Asked by Baz At
2
There are 2 answers
0
matino
On
My guess would be: multithreading module was implemented very early, multiprocessing module came in 2.6 version.
The queue design was slightly corrected for multiprocessing and offers better flexibility than the multithreading, because you can choose between Queue, SimpleQueue and JoinableQueue depending on your use cases (speed vs reliability).
Now modifing multithreading like this would have caused backwards incompatibility, since join and task_done methods would have to be removed. Imagine the code needed to be refactored, new tests had to be written, API broken - for me clearly no benefits.
Related Questions in PYTHON
- How to store a date/time in sqlite (or something similar to a date)
- Instagrapi recently showing HTTPError and UnknownError
- How to Retrieve Data from an MySQL Database and Display it in a GUI?
- How to create a regular expression to partition a string that terminates in either ": 45" or ",", without the ": "
- Python Geopandas unable to convert latitude longitude to points
- Influence of Unused FFN on Model Accuracy in PyTorch
- Seeking Python Libraries for Removing Extraneous Characters and Spaces in Text
- Writes to child subprocess.Popen.stdin don't work from within process group?
- Conda has two different python binarys (python and python3) with the same version for a single environment. Why?
- Problem with add new attribute in table with BOTO3 on python
- Can't install packages in python conda environment
- Setting diagonal of a matrix to zero
- List of numbers converted to list of strings to iterate over it. But receiving TypeError messages
- Basic Python Question: Shortening If Statements
- Python and regex, can't understand why some words are left out of the match
Related Questions in MULTITHREADING
- How can I outsource worker processes within a for loop?
- OpenMP & oneTbb difference
- Receiving Notifications for Individual Task Completion OmniThreadLibrary Parallel.ForEach
- C++ error: no matching member function for call to 'enqueue' futures.emplace_back(TP.enqueue(sum_plus_one, x, &M));
- How can I create a thread in Haskell that will restart if it gets killed due to any reason?
- Qt: running callback in the main thread from the worker thread
- Using `static` on a AVX2 counter function increases performance ~10x in MT environment without any change in Compiler optimizations
- Heap sort with multithreading
- windows multithreading CreateMutex
- The problem of "fine-grained locks and two-phase locking algorithm"
- OpenMP multi-threading not working if OpenMPI set to use one or two MPI processor
- WPF Windows Initializing is locking the separated thread in .Net 8
- TCP Client Losing Connection When Writing Data
- vc++ thread constructor throwing compiler error c2672
- ASP.NET Core 6 Web API : best way to pause before resending email
Related Questions in MULTIPROCESSING
- How can I chop up data before sending it into a multiprocessing function?
- Is there a way to update plotly/dash faster when using a background callback?
- Python: Generating an image using Multiprocessing freezes
- Python multiprocessing error when trying to run a process pool from within a spawned process
- MultiProcessing in Python Enduring Order of Queue
- Where in the code should the torch multiprocessing sharing strategy be set?
- How to Configure Ray to Use Standard Python Logger for Multiprocessing?
- `multiprocessing.pool.starmap()` works wrong when I want to write my custom vector env for DRL
- Pytorch how to use num_worker>0 for Dataloader when using multiple gpus
- Python Qt5 Running two methods simultaneously
- Initial Fastapi request is not being processed and stays on hold
- What will be the behaviour when ProcessPoolExecutor & Multiple Workers started using Gunicorn (FastAPI) are used together?
- GDAL ogr2ogr alternative that uses multiprocessing
- Nested dir name in python multiprocess shared_memory - Invalid argument
- Restarting process raises runtimeerror (can't create new thread at interpreter shutdown)
Related Questions in PYTHON-MULTITHREADING
- Python Background Thread Timer
- In ThreadPoolExecutor, socket.bind() is blocking without "Address already in use"
- How can I interrupt or send signals to python Threads without cooperation from the thread?
- Can a data race occur when multiple threads access the same Numpy array?
- Python3 get response from Queue and multiple threads
- Why is there a large ploting delay/lag in my real-time serial port ploting app after more than 10000 datapoints reading?
- Python——Is there any solution for thread priority in threading.Thread?
- Why does the python client socket receiving a reply but still throw the exception in some threadings?
- Re-play slow motion doesn't play anything
- I have encountered a wall while using customtkinter and threading together
- Is there a way to pause and restart a thread or kill a thread and start it again?
- How to switch between Text widget contents with multiple buttons?
- cannot pickle '_mysql_connector.MySQL' object
- How can I make a tkinter inaccessible while it is minimized after iconify is run?
- Error after ending code that use tkinter with thread
Related Questions in PYTHON-MULTIPROCESSING
- Can I spawn a python process in a remote machine as a way to scale my compute?
- How to I execute python code in parallel using Azure Container Apps as the backend (or other serverless infra)?
- Bot is not able to edit message (Telebot/Multiprocessing)
- VSCode+Python: Run multiple processes in lockstep
- Python proccess not start via block input
- Python multiprocessing error when trying to run a process pool from within a spawned process
- logging in multiprocess writes to same log
- Restarting process raises runtimeerror (can't create new thread at interpreter shutdown)
- Is there a better way to use multiprocessing within a loop?
- How can I easily parallelize my Monte Carlo simulations?
- Multiprocessing SharedMemory not found in second multiprocessing.Pool
- AttributeError: Can't pickle local object 'Settings._validator_factory.<locals>.helper'
- spark parallelize fails with pickle error
- Python Multiprocessing with pydantic.BaseModel objects
- python multiprocessing to execute a for loop in parallel
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
I think you need JoinableQueue.