eventlet引发的学习-初识多线程
2016-02-29 23:36
871 查看
参考
python多线程python threading模块官方文档
初识多线程
在python多线程中有关于python多线程的详细基础知识,此处不在赘述,只是简单总结下:python中自带了2个模块支持多线程:
* thread:提供相对底层的多线程
* threading:提供了2种创建多线程的方式:
*
threading.Thread(target,args)对象,target即为要执行的函数
* 创建自己的类继承threading.Thread,并实现
__init__以及
run方法,然后创建对象
测试代码
threading模块创建Thread对象方式
from threading import Thread import time G_COUNT = 100000000 def func1(): for i in range(10): print("Func1:%s at %s" % (i,time.time())) time.sleep(1) def func2(): for i in range(10): print("Func2:%s at %s" % (i, time.time())) time.sleep(1) def main(): t1 = Thread(target=func1) t2 = Thread(target=func2) t1.start() t2.start() t1.join() t2.join() if __name__ == "__main__": main()
执行的结果如下:
Func1:0 at 1456760385.98 Func2:0 at 1456760385.98 Func1:1 at 1456760386.99 Func2:1 at 1456760386.99 Func1:2 at 1456760387.99 Func2:2 at 1456760387.99 Func2:3 at 1456760388.99 Func1:3 at 1456760388.99 Func1:4 at 1456760389.99 Func2:4 at 1456760389.99 Func1:5 at 1456760391.0 Func2:5 at 1456760391.0 Func1:6 at 1456760392.0 Func2:6 at 1456760392.0 Func1:7 at 1456760393.0 Func2:7 at 1456760393.0 Func1:8 at 1456760394.0 Func2:8 at 1456760394.0 Func1:9 at 1456760395.0 Func2:9 at 1456760395.0
threading模块继承Thread类方式
import threading import time class MyThread(threading.Thread): def __init__(self, thread_name, count): super(MyThread, self).__init__() self.thread_name = thread_name self.count = count def run(self): print "Starting " + self.name print_time(self.name, count) print "Ending " + self.name def print_time(name, count): for i in range(count): print "%s:%s" % (name, time.ctime(time.time())) time.sleep(1) count = 5 thread1 = MyThread("Thread-1", count) thread2 = MyThread("Thread-2", count) thread1.start() thread2.start()
执行的结果如下:
Starting Thread-1 Starting Thread-2 Thread-1:Mon Feb 29 23:37:28 2016 Thread-2:Mon Feb 29 23:37:28 2016 Thread-1:Mon Feb 29 23:37:29 2016 Thread-2:Mon Feb 29 23:37:29 2016 Thread-1:Mon Feb 29 23:37:30 2016 Thread-2:Mon Feb 29 23:37:30 2016 Thread-1:Mon Feb 29 23:37:31 2016 Thread-2:Mon Feb 29 23:37:31 2016 Thread-1:Mon Feb 29 23:37:32 2016 Thread-2:Mon Feb 29 23:37:32 2016 Ending Thread-1 Ending Thread-2
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例