您的位置:首页 > 其它

多线程的上手例子

2017-08-18 10:56 134 查看
温习了下python的多线程,虽然python中的多线程是伪多线程,但是还是可以熟悉了解下。

#coding:utf-8
'''
Created on 2017年8月17日

@author: zhouxuan
'''
import threading
import time
def aa():
print 'start aa'
time.sleep(5)
print 'ok'
def bb():
print 'start bb'
time.sleep(3)
print 'done'

if __name__=="__main__":
print 'start time',time.ctime()
threads=[]
t1=threading.Thread(target=aa,args=())
t2=threading.Thread(target=bb,args=())
threads.append(t1)
threads.append(t2)
for i in threads:
i.setDaemon(True)
i.start()
for i in threads:
i.join()
print 'now time',time.ctime()
i.join()的作用是阻塞作用,单独设置循环来阻塞是因为如果都放到一个循环里面,系统就变成了阻塞完第一个了再阻塞第二个,形成了个先后顺序,就没有多线程的作用了。所以要单独开启一个for循环来执行。换乘for后,线程都开启,可以同事阻塞多个线程,直到每个都执行完毕了才退出。
setDaemon()
  setDaemon(True)将线程声明为守护线程,必须在start() 方法调用之前设置,如果不设置为守护线程程序会被无限挂起。子线程启动后,父线程也继续执行下去,当父线程执行完最后一条语句print "all over %s" %ctime()后,没有等待子线程,直接就退出了,同时子线程也一同结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: