One: the basic process of using
- windows system open process must or will be error in the main
import multiprocessing def task(args): print(args) if __name__ == '__main__': for i in range(10): p = multiprocessing.Process(target=task,args=(i,)) p.start()
Two: do not share data between processes
- process
import multiprocessing data_list=[] def task(args): data_list.append(args) print(data_list) if __name__ == '__main__': for i in range(10): p = multiprocessing.Process(target=task,args=(i,)) p.start() [0] [1] [3] [2] [4] [5] [6] [7] [8] [9]
- Thread
import multiprocessing import threading data_list=[] def task(args): data_list.append(args) print(data_list) if __name__ == '__main__': for i in range(10): p = threading.Thread(target=task,args=(i,)) p.start() [0] [0, 1] [0, 1, 2] [0, 1, 2, 3] [0, 1, 2, 3, 4] [0, 1, 2, 3, 4, 5] [0, 1, 2, 3, 4, 5, 6] [0, 1, 2, 3, 4, 5, 6, 7] [0, 1, 2, 3, 4, 5, 6, 7, 8] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Three: common method
- join waiting
- daemon
- name
import multiprocessing def task(args): p = multiprocessing.current_process() print(p.name,p.ident) # ident/pid if __name__ == '__main__': for i in range(10): p = multiprocessing.Process(target=task,args=(i,)) p.name = str(i) p.start()
Four: the process of creating an object-oriented approach
import multiprocessing class MyProcess(multiprocessing.Process): def run(self): print(multiprocessing.current_process()) def run(): p1 = MyProcess() p1.start() if __name__ == '__main__': run()