python3多线程知识点总结


Posted in Python onSeptember 26, 2019

多线程类似于同时执行多个不同程序,多线程运行有如下优点:

使用线程可以把占据长时间的程序中的任务放到后台去处理。

用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度。

程序的运行速度可能加快。

在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。

每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

每个线程都有他自己的一组CPU寄存器,称为线程的上下文,该上下文反映了线程上次运行该线程的CPU寄存器的状态。

指令指针和堆栈指针寄存器是线程上下文中两个最重要的寄存器,线程总是在进程得到上下文中运行的,这些地址都用于标志拥有线程的进程地址空间中的内存。

线程可以被抢占(中断)。

在其他线程正在运行时,线程可以暂时搁置(也称为睡眠) -- 这就是线程的退让。

线程可以分为:

  • 内核线程:由操作系统内核创建和撤销。
  • 用户线程:不需要内核支持而在用户程序中实现的线程。

Python3 线程中常用的两个模块为:

_thread

threading(推荐使用)

thread 模块已被废弃。用户可以使用 threading 模块代替。所以,在 Python3 中不能再使用"thread" 模块。为了兼容性,Python3 将 thread 重命名为 "_thread"。

开始学习Python线程

Python中使用线程有两种方式:函数或者用类来包装线程对象。

函数式:调用 _thread 模块中的start_new_thread()函数来产生新线程。语法如下:

_thread.start_new_thread ( function, args[, kwargs] )

参数说明:

function - 线程函数。

args - 传递给线程函数的参数,他必须是个tuple类型。

kwargs - 可选参数。

实例:

#!/usr/bin/python3

 

import _thread

import time

 

# 为线程定义一个函数

def print_time( threadName, delay):

  count = 0

  while count < 5:

   time.sleep(delay)

   count += 1

   print ("%s: %s" % ( threadName, time.ctime(time.time()) ))

 

# 创建两个线程

try:

  _thread.start_new_thread( print_time, ("Thread-1", 2, ) )

  _thread.start_new_thread( print_time, ("Thread-2", 4, ) )

except:

  print ("Error: 无法启动线程")

 

while 1:

  pass

以上就是python3多线程的详细内容,感谢大家对三水点靠木的支持。

Python 相关文章推荐
Python实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
python正常时间和unix时间戳相互转换的方法
Apr 23 Python
浅析Python中将单词首字母大写的capitalize()方法
May 18 Python
Python实现给文件添加内容及得到文件信息的方法
May 28 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
Python三级菜单的实例
Sep 13 Python
python2与python3的print及字符串格式化小结
Nov 30 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
将python包发布到PyPI和制作whl文件方式
Dec 25 Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 Python
Pycharm快捷键配置详细整理
Oct 13 Python
python 遍历磁盘目录的三种方法
Apr 02 Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 #Python
Python容器使用的5个技巧和2个误区总结
Sep 26 #Python
通过python3实现投票功能代码实例
Sep 26 #Python
Python编写打字训练小程序
Sep 26 #Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 #Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 #Python
python 模拟创建seafile 目录操作示例
Sep 26 #Python
You might like
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
php无限遍历文件夹示例分享
2014/03/04 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
Display SQL Server Login Mode
2007/06/21 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
vue2过滤器模糊查询方法
2018/09/16 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
详解Python中的元组与逻辑运算符
2015/10/13 Python
详解python时间模块中的datetime模块
2016/01/13 Python
理解python正则表达式
2016/01/15 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
python flask安装和命令详解
2019/04/02 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
python实现文法左递归的消除方法
2020/05/22 Python
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
会计自我鉴定
2014/02/04 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
防灾减灾日活动总结
2014/08/26 职场文书
内乡县衙导游词
2015/02/05 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers