How to get the process id from Python Multiprocess? - GeeksforGeeks

27 Mar, 2021

In this article, we will see how to get the process id from Python Multiprocess For this we should make use of method multiprocessing.current_process() to get the multiprocess id.  Multiprocessing refers to the ability of a system to support more than one processor at the same time. Applications in a multiprocessing system are broken into smaller routines that run independently. The operating system allocates these threads to the processors improving the performance of the system.
Consider a computer system with a single processor. If it is assigned several processes at the same time, it will have to interrupt each task and switch briefly to another, to keep all the processes going.This situation is just like a chef working in a kitchen alone. He has to do several tasks like baking, stirring, kneading dough, etc.
Example 1:
First, we need to import a multiprocessing library in python.
Python3
 

 
 










# importing library 
import multiprocessing 
  
# define function 
def twos_multiple(y): 
      
    # get current process 
    print(multiprocessing.current_process()) 
      
    return y * 2
  
pro = multiprocessing.Pool() 
  
print(pro.map(twos_multiple, range(10)))






Output:
Example 2:
Multiprocessing will maintain an itertools.counter object for each and every process, which is used to generate an _identity tuple for any child processes it spawns and the top-level process produces child process with single-value ids, and they spawn process with two-value ids, and so on. Then, if no names are passed to the Process constructor, it simply autogenerates the name based on the _identity, using  ‘:’.join(...). Then Pool alters the name of the process using replace, leaving the autogenerated id the same.
The auto-generated names are unique. It will return the process object itself, there is a possibility of the process being its own identity.
The upshot of all this is that although two Processes may have the same name, because you may assign the same name to them when you create them, they are unique if you don’t touch the name parameter. Also, you could theoretically use _identity as a unique identifier; but I gather they made that variable private for a reason!
Python3
 

 
 










import multiprocessing 
  
def twos_multiple(x): 
        
    proc = multiprocessing.Process() 
      
    curr_proc = multiprocessing.current_process() 
      
    print('current process:', curr_proc.name, curr_proc._identity) 
  
    print('created process:', proc.name, proc._identity) 
      
    return x * 2
  
pro = multiprocessing.Pool() 
  
print(pro.map(twos_multiple, range(10)))






Output:

Picked


Python-multithreading


Python

Writing code in comment? 
                                    Please use ide.geeksforgeeks.org, 
                                    generate link and share the link here.
                                
How to Install PIP on Windows ?
How to drop one or multiple columns in Pandas Dataframe
How To Convert Python Dictionary To JSON?
Check if element exists in list in Python
Python | Pandas dataframe.groupby()
Defaultdict in Python
Python | Get unique values from a list
Python Classes and Objects
Python | os.path.join() method
Create a directory in Python