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使用百度API上传文件到百度网盘代码分享
Nov 08 Python
Python实现全角半角字符互转的方法
Nov 28 Python
Python 装饰器使用详解
Jul 29 Python
Python将多个excel表格合并为一个表格
Feb 22 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
python K近邻算法的kd树实现
Sep 06 Python
Python 从一个文件中调用另一个文件的类方法
Jan 10 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
python使用celery实现异步任务执行的例子
Aug 28 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
Jan 02 Python
Pytorch基本变量类型FloatTensor与Variable用法
Jan 08 Python
详解Python内置模块Collections
Mar 22 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
十天学会php之第九天
2006/10/09 PHP
在IIS上安装PHP4.0正式版
2006/10/09 PHP
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
2款PHP无限级分类实例代码
2015/11/11 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
JQuery基础语法小结
2015/02/27 Javascript
JavaScript中this详解
2015/09/01 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
用python读写excel的方法
2014/11/18 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
Python3离线安装Requests模块问题
2019/10/13 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
美国保健品专家:Life Extension
2018/05/04 全球购物
猫咪家具:CatsPlay
2018/11/03 全球购物
可贵的沉默教学反思
2014/02/06 职场文书
环保口号大全
2014/06/12 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
导游词之井冈山
2019/11/20 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL