多线程的上手例子
2017-08-18 10:56
134 查看
温习了下python的多线程,虽然python中的多线程是伪多线程,但是还是可以熟悉了解下。
setDaemon()
setDaemon(True)将线程声明为守护线程,必须在start() 方法调用之前设置,如果不设置为守护线程程序会被无限挂起。子线程启动后,父线程也继续执行下去,当父线程执行完最后一条语句print "all over %s" %ctime()后,没有等待子线程,直接就退出了,同时子线程也一同结束。
#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()后,没有等待子线程,直接就退出了,同时子线程也一同结束。
相关文章推荐
- 关于多线程的小例子,快速上手!无需停留!!!
- 一个简单的多线程例子-临界区
- Java多线程例子
- javaSE-多线程间通信-生产者消费者例子
- FCGI单线程环境和多线程环境下的例子
- Java多线程生产者和消费者的例子
- 新手上路_vc多线程例子,关于AfxBeginThread的用法
- C#多线程简单例子讲解
- 网络与多线程的设计例子
- Java多线程的常见例子(买票)
- 一个展现java多线程原理的例子
- 多线程知识(有例子) 转载 还行继续努力
- 多线程,委托例子
- 多线程例子(3)
- Apache OFBIZ快速上手(一)--简单例子
- 一个很好的Java多线程的例子
- 多线程例子 Runnable 例子。
- 【多线程】java多线程 测试例子 详解wait() sleep() notify() start() join()方法 等
- c#实现多线程代码例子
- 完成的多线程的例子