ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 低调看直播体育app软件下载 >> Pythonjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 >> python多线程 Python(八)进程、线程、协程篇

python多线程 Python(八)进程、线程、协程篇(4/6)

来源:网络整理     时间:2016-06-27     关键词:python多线程

本篇文章主要介绍了"python多线程 Python(八)进程、线程、协程篇",主要涉及到python多线程方面的内容,对于Pythonjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: 本章内容:线程(线程锁、threading.Event、queue 队列、生产者消费者模型、自定义线程池)进程(数据共享、进程池)协程线程Threading用于...

 Python(八)进程、线程、协程篇 Python(八)进程、线程、协程篇

#!/usr/bin/env python# -*- coding:utf-8 -*-from multiprocessing import Process, Array, RLock

def Foo(lock,temp,i):
    """    将第0个数加100
    """    lock.acquire()
    temp[0] = 100+i
    for item in temp:
        print i,'----->',item
    lock.release()

lock = RLock()
temp = Array('i', [11, 22, 33, 44])

for i in range(20):
    p = Process(target=Foo,args=(lock,temp,i,))
    p.start()
进程锁实例

进程池

进程池内部维护一个进程序列,当使用时,则去进程池中获取一个进程,如果进程池序列中没有可供使用的进进程,那么程序就会等待,直到进程池中有可用进程为止。

方法:

  • apply(func[, args[, kwds]]) :使用arg和kwds参数调用func函数,结果返回前会一直阻塞,由于这个原因,apply_async()更适合并发执行,另外,func函数仅被pool中的一个进程运行。

  • apply_async(func[, args[, kwds[, callback[, error_callback]]]]) : apply()方法的一个变体,会返回一个结果对象。如果callback被指定,那么callback可以接收一个参数然后被调用,当结果准备好回调时会调用callback,调用失败时,则用error_callback替换callback。 Callbacks应被立即完成,否则处理结果的线程会被阻塞。

  • close() : 阻止更多的任务提交到pool,待任务完成后,工作进程会退出。

  • terminate() : 不管任务是否完成,立即停止工作进程。在对pool对象进程垃圾回收的时候,会立即调用terminate()。

  • join() : wait工作线程的退出,在调用join()前,必须调用close() or terminate()。这样是因为被终止的进程需要被父进程调用wait(join等价与wait),否则进程会成为僵尸进程

进程池中有两个方法:

python多线程相关图片

python多线程相关文章