CSIC_716_20191207并发编程---进程与线程

Posted csic716

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSIC_716_20191207并发编程---进程与线程相关的知识,希望对你有一定的参考价值。

僵尸进程与孤儿进程

 

 

 

 

守护进程,

from Multiprocessing  import Process

在 suboprocess.start( ) 的上一行,增加 subprocess.deamon( ),创建守护进程。当主进程执行完成时,subprocess也会被强制结束。

 

进程之间是相互独立的,主子两个进程在执行时,数据是隔离的。

 

进程互斥锁:

from Multiprocessing import Lock

lock = Lock( )

lock.acquire( )  #加锁

lock.release( )  #释放锁

进程互斥锁是为了保证数据的读写安全。避免并发造成数据的错乱。

 

 

队列

队列可以使得进程之间的数据可以交互。

队列遵循先进先出(FIFO)的原则.

python中可以使用队列的三种方法

from multiprocessing import Queue
from multiprocessing import JoinableQueue  # 基于Queue封装的
import queue  # 内置的队列

q_obj = Queue(count)  # 对应 import Queue,规定队列中能存放几个值,count为数量
q_obj = JoinableQueue(count)  # 对应 import JoinableQueue
q_obj = queue.Queue(count)  # 对应 import queue,以上三种方式,三选一。

q_obj.put_nowait(args)  # 给队列中增加值,如果队列中满了,就会报错
q_obj.put(args)  # 给队列中增加值, 如果队列满了,就会阻塞等待

q_obj.get_nowait()  # 从队列中取值,如果取不到值,就会报错。
q_obj.get()  # 从队列中取值,如果取不到,就会阻塞等待

  

 IPC机制    Interprocess conmunication 进程间通信,在产生子进程时,将队列作为参数传入

 

生产者和消费者模型    基于队列,在producer 和consumer之间交互信息。

 

 

 

 

以上是关于CSIC_716_20191207并发编程---进程与线程的主要内容,如果未能解决你的问题,请参考以下文章

CSIC_716_20191029

CSIC_716_20191028

CSIC_716_20191105

CSIC_716_20191108

CSIC_716_20191116常用模块的用法

CSIC_716_20191102