当前位置:
首页 > Python基础教程 >
-
python开发之thread线程基础实例入门
这篇文章主要介绍了python开发之thread线程基础,以三个实例形式分析了Python中thread线程的基本使用方法,涉及串行与并行程序的执行原理及线程的操作技巧,需要的朋友可以参考下
本文实例讲述了python开发之thread线程基础。分享给大家供大家参考,具体如下:
说到线程,我们要知道啥是串行,啥是并行程序
举个例子:
串行程序,就是一个一个的执行程序
#python threading
import time
'''
每一秒中,输出:this is a demo!
'''
def serial():
'''串行输出'''
time.sleep(1)
print('this is a demo!')
def main():
for i in range(5):
serial()
if __name__ == '__main__':
main()
运行结果如下:
>>>
this is a demo!
this is a demo!
this is a demo!
this is a demo!
this is a demo!
>>>
并行程序,就是很多个程序在同一时间(宏观)一起执行
#python threading
import threading
import time
'''
并行执行,输出:Good!Good!Good!Good!Good!
'''
def parallel():
'''并行输出'''
time.sleep(1)
print('Good!')
def main():
for i in range(5):
t = threading.Thread(target=parallel)
t.start()
if __name__ == '__main__':
main()
当然我们通过执行程序,可以知道,并行程序要比串行程序执行的要快....
我们也可以获取到当前的线程及个数:
#python threading
import threading
import time
'''
并行执行,输出:
[<Thread(Thread-2, started 3480)>, <Thread(Thread-1, started 660)>,
<Thread(SockThread, started daemon 2920)>, <Thread(Thread-3, started 916)>,
<Thread(Thread-4, started 3476)>, <_MainThread(MainThread, started 3964)>,
<Thread(Thread-5, started 2060)>]
存在的线程数 : 7
Good!Good!Good!Good!Good!
'''
def parallel():
'''并行输出'''
time.sleep(1)
print('Good!')
def main():
for i in range(5):
t = threading.Thread(target=parallel)
t.start()
if __name__ == '__main__':
main()
print(threading.enumerate())
print('存在的线程数 : %d'%threading.active_count())
运行结果如下:
>>>
[<Thread(SockThread, started daemon 15424)>, <Thread(Thread-3, started 15840)>, <Thread(Thread-1, started 10884)>, <Thread(Thread-2, started 14512)>, <Thread(Thread-4, started 13204)>, <_MainThread(MainThread, started 12924)>, <Thread(Thread-5, started 15476)>]
存在的线程数 : 7
>>> Good!Good!Good!Good!Good!
希望本文所述对大家Python程序设计有所帮助。
来源:https://www.jb51.net/article/74681.htm
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
开启SQLSERVER数据库缓存依赖优化网站性能
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比