多线程的简单演示
2018-06-17 23:28:14来源:未知 阅读 ()
一、前言
我们知道单核cpu同时只能执行一个任务。如果在一个单核cpu的电脑上,我们可以同时登入qq、听音乐或者写文档等,给我们的感觉它们就是同时在进行的。这是由于cpu的分时技术,使它不断的进行上下文的切换,根据任务的优先级不停的在各个任务间切换执行。而且由于cpu运行太快,我们根本感觉不到它在切换任务,所以就给了我们同时在执行多个任务。
二、简单的多线程并发
2.1 创建线程
import threading # 线程模块 # 定义每个线程要运行的函数 def run(n): print('task', n) if __name__ == '__main__': # 生成一个线程实例 , 参数为 元组形式 t1 = threading.Thread(target=run, args=("t1",)) # 生成另一个线程实例 , 参数为 元组形式 t2 = threading.Thread(target=run, args=("t2",)) # 启动线程 t1.start() t2.start()
2.2 对比运行
好像运行结果除了同时出来外,没什么特别的,我们稍稍修改一下
import threading import time def run(n): print('task', n) time.sleep(2) if __name__ == '__main__': t1 = threading.Thread(target=run, args=("t1",)) t2 = threading.Thread(target=run, args=("t2",)) # t1.start() # t2.start() run('t1') run('t2')
我们让程序sleep一会,就能很明显看出并发运行的效果了
三、继承式调用
上面使用线程方法可以被称为直接调用,而继承式调用需要我们自己写一个类,继承threading.Thread
方法:
- 先定义一个类,继承threading.Thread
- 要继承父类的构造函数
- 定义一个运行的函数,必须是 run()
import threading import time class MyThread(threading.Thread): def __init__(self, n): super(MyThread, self).__init__() self.n = n def run(self): print('task', self.n) time.sleep(2) if __name__ == '__main__': t1 = MyThread(1) t2 = MyThread(2) t1.start() t2.start()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Python连载30-多线程之进程&线程&线程使用 2019-08-13
- python多线程同步实例分析 2019-08-13
- python爬虫学习之用Python抢火车票的简单小程序 2019-08-13
- python 之 并发编程(线程理论,开启线程的两种方式,进程 2019-07-24
- 用python写一个简单的文件上传 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash