并行(多进程)-python

 

1、进程创建

 

 

 

2、当前进程信息

使用current_process可获得当前进程的信息:

(1)引入:from multiprocessing import current_process

(2)获取信息:

proc = current_process() # 当前进程对象
print proc.name # 进程名字
print proc.pid # 进程号

 

3、进程状态及控制

 

4、queue

 所属模块:multiprocessing.Queue

(1)模块引入:from multiprocessing import Queue

(2)API:

q =  Queue()

q.qsize():

q.empty():

q.full():

q.put():

q.put_nowait():

q.get():

q.get_nowait():

q.close():

join_thread():

cancel_join_thread():

4.1 简化版本

所属模块:multiprocessing.queues.SimpleQueue

只有三个方法:empty(),get(), put()

4.2 加强版本

所属模块:multiprocessing.JoinableQueue

新增两个方法: task_done() ,join()

5、pipe 

 

6、锁

 

7、进程间共享

 Pipe、Queue 都有一定数据共享的功能,但是他们会堵塞进程

8、进程池

 

9、注意事项

(1)Lock、Pipe、Queue 和 Pipe 需要注意的是:尽量避免使用 Process.terminate 来终止程序,否则将会导致很多问题。

(2)multiprocessing提供了threading包中没有的IPC(比如Pipe和Queue),效率上更高。应优先考虑Pipe和Queue,避免使用Lock/Event/Semaphore/Condition等同步方式 (因为它们占据的不是用户进程的资源)。

 

posted on 2018-03-02 11:38  执剑长老  阅读(435)  评论(0编辑  收藏  举报