python开发_thread_线程基础
时间:2022-06-10
本文章向大家介绍python开发_thread_线程基础,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
说到线程,我们要知道啥是串行,啥是并行程序
举个例子:
串行程序,就是一个一个的执行程序
1 #python threading
2
3 import time
4 '''
5 每一秒中,输出:this is a demo!
6 '''
7
8 def serial():
9 '''串行输出'''
10 time.sleep(1)
11 print('this is a demo!')
12
13 def main():
14 for i in range(5):
15 serial()
16
17 if __name__ == '__main__':
18 main()
并行程序,就是很多个程序在同一时间(宏观)一起执行
1 #python threading
2
3 import threading
4 import time
5 '''
6 并行执行,输出:Good!Good!Good!Good!Good!
7 '''
8
9 def parallel():
10 '''并行输出'''
11 time.sleep(1)
12 print('Good!')
13
14 def main():
15 for i in range(5):
16 t = threading.Thread(target=parallel)
17 t.start()
18
19 if __name__ == '__main__':
20 main()
当然我们通过执行程序,可以知道,并行程序要比串行程序执行的要快....
我们也可以获取到当前的线程及个数:
1 #python threading
2
3 import threading
4 import time
5 '''
6 并行执行,输出:
7 [<Thread(Thread-2, started 3480)>, <Thread(Thread-1, started 660)>,
8 <Thread(SockThread, started daemon 2920)>, <Thread(Thread-3, started 916)>,
9 <Thread(Thread-4, started 3476)>, <_MainThread(MainThread, started 3964)>,
10 <Thread(Thread-5, started 2060)>]
11 存在的线程数 : 7
12 Good!Good!Good!Good!Good!
13 '''
14
15 def parallel():
16 '''并行输出'''
17 time.sleep(1)
18 print('Good!')
19
20 def main():
21 for i in range(5):
22 t = threading.Thread(target=parallel)
23 t.start()
24
25 if __name__ == '__main__':
26 main()
27 print(threading.enumerate())
28 print('存在的线程数 : %d'%threading.active_count())
E | hongtenzone@foxmail.com B | http://www.cnblogs.com/hongten
- Android P专区免费开放 -- 同样的Android,不同的体验
- YJango:TensorFlow中层API Datasets+TFRecord的数据导入
- CentOS7上ElasticSearch安装填坑记
- ASP.NET Core 阶段性总结
- Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程案例演示
- C# 窗体常用API函数 应用程序窗体查找
- C#进阶系列——WebApi接口测试工具:WebApiTestClient
- 由Dapper QueryMultiple 返回数据的问题
- 【初探IONIC】不会Native可不可以开发APP?
- MVC视图展现模式之移动布局解析-续集
- 在 ASP.NET MVC 中使用异步控制器
- MVC5 Entity Framework学习之异步和存储过程
- ConcurrentDictionary 对决 Dictionary+Locking
- 在ASP.NET 5中使用SignalR
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- <Go语言学习笔记>【数组与切片】
- Android Studio 3.6 新特性一览(推荐)
- 03 Linux下的SVN服务器搭建
- Android openGl 绘制简单图形的实现示例
- 解决Android studio 3.6.1 出现Cause: unable to find valid certification path to requested target 报错的问题
- 使用kotlin实现MVP的方式(简单好用)
- Android Studio 3.6中新的视图绑定工具ViewBinding 用法详解
- android studio更新gradle错误构建项目失败的解决方法
- Android Studio使用Kotlin时,修改代码后运行不生效的解决方法
- 服务端开发人员必备网页调试工具:Postman
- 树莓派使用DHT11模块读取温湿度
- 用Go 写了个负载均衡器
- 给MacBook写一个更好的Windows触摸板驱动程序
- 小程序多图上传服务器接收返回数据操作
- WordPress屏蔽某个国家地方的IP访问