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并发编程---进程与线程的主要内容,如果未能解决你的问题,请参考以下文章