事件
python线程的事件用于主线程控制其他线程的执行,事件主要提供了三个方法 set、wait、clear。
事件处理的机制:全局定义了一个“Flag”,如果“Flag”值为 False,那么当程序执行 event.wait 方法时就会阻塞,如果“Flag”值为True,那么event.wait 方法时便不再阻塞。
clear:将“Flag”设置为False
set:将“Flag”设置为True
#!/usr/bin/env python # -*- coding:utf-8 -*- import threading def do(event): print ‘start‘ event.wait() print ‘execute‘ event_obj = threading.Event() for i in range(10): t = threading.Thread(target=do, args=(event_obj,)) t.start() event_obj.clear() inp = raw_input(‘input:‘) if inp == ‘true‘: event_obj.set()
Python 进程
from multiprocessing import Process import threading import time def foo(i): print ‘say hi‘,i for i in range(10): p = Process(target=foo,args=(i,)) p.start()
注意:由于进程之间的数据需要各自持有一份,所以创建进程需要的非常大的开销。
进程数据共享
进程各自持有一份数据,默认无法共享数据
本文出自 “砺器悟道” 博客,请务必保留此出处http://jzzjw.blog.51cto.com/9921462/1729256
原文:http://jzzjw.blog.51cto.com/9921462/1729256