python3多线程知识点总结

 更新时间:2019年09月26日 14:40:34   作者:(*-*)浩  
在本篇文章里小编给各位分享的是关于python3多线程的相关知识点内容,以后需要的朋友们可以参考下。

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

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

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

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

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

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

每个线程都有他自己的一组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如何实现图片重命名并保存

    这篇文章主要介绍了python如何实现图片重命名并保存问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • PyCharm运行python测试,报错“没有发现测试”/“空套件”的解决

    PyCharm运行python测试,报错“没有发现测试”/“空套件”的解决

    这篇文章主要介绍了PyCharm运行python测试,报错“没有发现测试”/“空套件”的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 浅谈Python的条件判断语句if/else语句

    浅谈Python的条件判断语句if/else语句

    这篇文章主要介绍了Python的条件判断语句if/else语句,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Python安装使用命令行交互模块pexpect的基础教程

    Python安装使用命令行交互模块pexpect的基础教程

    Pexpect是一个纯Python模块,可以用来和ssh、ftp、passwd、telnet等命令行命令进行交互使用,在Linux系统下尤其好用,下面我们就来具体来看一下Python安装使用命令行交互模块pexpect的基础教程:
    2016-05-05
  • 使用Pandas选择数据子集的方法示例

    使用Pandas选择数据子集的方法示例

    有时数据读入后并不是对整体数据进行分析,而是数据中的部分子集,所以,该如何根据特定的条件实现数据子集的获取将是本节的主要内容,本文给大家介绍了使用Pandas选择数据子集的方法示例,需要的朋友可以参考下
    2024-03-03
  • 教你用Pygame制作简单的贪吃蛇游戏

    教你用Pygame制作简单的贪吃蛇游戏

    贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,既简单又耐玩,唯一的目标就是做这条gai上最长(pang)的蛇(zhu),这篇文章主要给大家介绍了关于如何使用Pygame制作简单的贪吃蛇游戏的相关资料,需要的朋友可以参考下
    2022-06-06
  • Python基础教程之循环语句(for、while和嵌套循环)

    Python基础教程之循环语句(for、while和嵌套循环)

    这篇文章主要给大家介绍了关于Python基础教程之循环语句(for、while和嵌套循环)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python sklearn分类决策树方法详解

    Python sklearn分类决策树方法详解

    决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法
    2022-09-09
  • Python的条件语句与运算符优先级详解

    Python的条件语句与运算符优先级详解

    这篇文章主要介绍了Python的条件语句与运算符优先级,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • 由Python运算π的值深入Python中科学计算的实现

    由Python运算π的值深入Python中科学计算的实现

    这篇文章主要介绍了由Python运算π的值深入Python中科学计算的实现,由简单的计算发散出各种算法的讲解,需要的朋友可以参考下
    2015-04-04

最新评论