Concurrent Programming Python - process

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()

 

Guess you like

Origin www.cnblogs.com/wc89/p/11105483.html