python多线程
来源:互联网 发布:日本经济泡沫 知乎 编辑:程序博客网 时间:2024/06/08 10:49
一般来说,python使用线程有两种模式:
(1)创建线程要执行的函数,把这个函数传递进Thread对象里,让它来执行;
(1)创建线程要执行的函数,把这个函数传递进Thread对象里,让它来执行;
(2)继承Thread类,创建一个新的class,将要执行的代码 写到run函数里面。
(1)方法:
#!/usr/bin/python# -*- coding: utf-8 -*-import threading,timedef test(loop, sec): print 'start loop', loop, 'at:', time.ctime() time.sleep(sec) print 'loop', loop, 'done at:', time.ctime()def main(): print 'starting at:', time.ctime() for i in xrange(10): th = threading.Thread(target= test,args= (i,2)) th.start() th.join() print 'all Done at:', time.ctime()if __name__ == '__main__': main()结果:
starting at: Tue May 2 14:01:49 2017start loop 0 at: Tue May 2 14:01:49 2017loop 0 done at: Tue May 2 14:01:51 2017start loop 1 at: Tue May 2 14:01:51 2017loop 1 done at: Tue May 2 14:01:53 2017start loop 2 at: Tue May 2 14:01:53 2017loop 2 done at: Tue May 2 14:01:55 2017start loop 3 at: Tue May 2 14:01:55 2017loop 3 done at: Tue May 2 14:01:57 2017start loop 4 at: Tue May 2 14:01:57 2017loop 4 done at: Tue May 2 14:01:59 2017start loop 5 at: Tue May 2 14:01:59 2017loop 5 done at: Tue May 2 14:02:01 2017start loop 6 at: Tue May 2 14:02:01 2017loop 6 done at: Tue May 2 14:02:03 2017start loop 7 at: Tue May 2 14:02:03 2017loop 7 done at: Tue May 2 14:02:05 2017start loop 8 at: Tue May 2 14:02:05 2017loop 8 done at: Tue May 2 14:02:07 2017start loop 9 at: Tue May 2 14:02:07 2017loop 9 done at: Tue May 2 14:02:09 2017all Done at: Tue May 2 14:02:09 2017
(2)方法
#!/usr/bin/python# -*- coding: utf-8 -*-import threading,timeclass myThread (threading.Thread) : def __init__(self, loop, sec) : super(myThread, self).__init__() self.loop = loop self.sec = sec def run(self): print 'start loop', self.loop, 'at:', time.ctime() time.sleep(self.sec) print 'loop', self.loop, 'done at:', time.ctime()def main(): print 'starting at:', time.ctime() for i in xrange(10): th = myThread(i,2) th.start() th.join() print 'all Done at:', time.ctime()if __name__ == '__main__': main()结果:
starting at: Tue May 2 14:13:17 2017start loop 0 at: Tue May 2 14:13:17 2017loop 0 done at: Tue May 2 14:13:19 2017start loop 1 at: Tue May 2 14:13:19 2017loop 1 done at: Tue May 2 14:13:21 2017start loop 2 at: Tue May 2 14:13:21 2017loop 2 done at: Tue May 2 14:13:23 2017start loop 3 at: Tue May 2 14:13:23 2017loop 3 done at: Tue May 2 14:13:25 2017start loop 4 at: Tue May 2 14:13:25 2017loop 4 done at: Tue May 2 14:13:27 2017start loop 5 at: Tue May 2 14:13:27 2017loop 5 done at: Tue May 2 14:13:29 2017start loop 6 at: Tue May 2 14:13:29 2017loop 6 done at: Tue May 2 14:13:31 2017start loop 7 at: Tue May 2 14:13:31 2017loop 7 done at: Tue May 2 14:13:33 2017start loop 8 at: Tue May 2 14:13:33 2017loop 8 done at: Tue May 2 14:13:35 2017start loop 9 at: Tue May 2 14:13:35 2017loop 9 done at: Tue May 2 14:13:37 2017all Done at: Tue May 2 14:13:37 2017
0 0
- Python多线程
- Python多线程
- Python多线程
- python多线程
- python 多线程
- python多线程
- python多线程
- python 多线程
- python多线程
- Python多线程
- Python 多线程
- python多线程
- python 多线程
- {python多线程}
- Python 多线程
- Python多线程
- python 多线程
- Python 多线程
- Go语言学习之encoding/xml(The way to go)
- 软件开发标准(文档模板)
- @Autowired注入原则
- ReactNative React-native-router-flux框架---页面跳转与传值
- Android异常之Service启动Activity
- python多线程
- 转专业进搜狐经验分享
- MYSQL explain详解
- hibernate异常 entity class not found: /shop/src//user/vo/User.java的解决方法
- 关于Thinkphp3.2 命名空间的说明-php5.3命名空间介绍-TP自动加载
- Redis Hashes类型介绍
- swift项目里面导入三方框架
- TensorFlow 资源大全中文版
- Java面向对象设计模式