为了让萌新们更好的理解什么是多线程,在开始前,我们先来看看下面这段代码:

dotask 函数的作用是,每隔5秒钟打印当前时间。可是,发现没有,main函数没有被执行,原因是dotask中有无限循环。那有没有什么方法,让dotask在后台执行,不影响我们执行后面的代码呢。

这就是多线程的作用了。

要完完整整的来解释什么是多线程,那可费功夫了,对理论知识有兴趣的朋友们可以去问问度娘,这里我就不讲解了,我们直接上代码,让大家更直观的理解什么是多线程。

在python中创建多线程,有多种方法,这里我们使用threading这个内置库。

上述代码将返回一个线程实例,target参数是一个函数地址,其实还有很多其它参数,后面会说,这里先不管。

我们来改改开头的代码,使用线程来执行dotask函数。

main函数被执行了,并且dotask函数在main函数执行后还在后台执行,每隔5秒打印当前时间。

线程创建方法 1

前文就是使用这种方法实现的。

线程创建方法 2

以继承类的方式创建

多线程的创建

设置和获得线程名称

在实例化的时候指定名称

通过实例来设定

获得线程名称:

启动线程和结束线程

启动线程

线程在执行完代码后会自动退出,但像上文中的循环需要做特殊的处理,让循环可控。

判断线程是否存活

线程还在执行返回True,否则返回False。

守护线程

设置守护线程

主线程默认不是守护线程,因此基于主线程创建的所有线程默认daemon均为False,当没有生存的非守护线程时,整个程序将会退出。简单的说,如果设置成守护线程,基于此线程创建的子线程在此线程结束时均停止。

需要注意的是,设置守护线程只能在线程开始前。

获取daemon状态:

返回True表示为守护线程。

阻塞线程

获得当前进程的线程数

通常这个数 >= 2.

获得正在运行的线程

会返回一个包含正在运行的线程List。不包含运行前和结束后的线程。

总结

线程的应用其实很简单,本文都是一些简单的功能;将来大家还要学习线程安全,线程同步和异步,线程的通讯,线程的优先级,线程池等。

python获取当前线程名称,Python 多线程相关推荐

  1. python获取当前线程名称_python使用标准库根据进程名如何获取进程的pid详解

    前言 标准库是Python的一个组成部分.这些标准库是Python为你准备好的利器,可以让编程事半功倍.特别是有时候需要获取进程的pid,但又无法使用第三方库的时候.下面话不多说了,来一起看看详细的介 ...

  2. Java 线程实例一(查看线程是否存活、获取当前线程名称、状态监测、线程优先级设置、死锁及解决方法、获取线程id、线程挂起)

    查看线程是否存活 以下实例演示了如何通过继承 Thread 类并使用 isAlive() 方法来检测一个线程是否存活: public class TwoThreadAlive extends Thre ...

  3. python 获取子线程状态_python线程状态

    python怎么判断线程的状态 python中如何在父线程中检测其子线程是否处于运行状态 子线程有一个方法 is_alive() 运行时会返回Bool值True python 在线程函数中如何实现线程 ...

  4. python获取当前线程数量_python 线程数

    python 多线程 真正的多线程吗? 对于多核处理器,在同一时间确实可以多个线程独立运行,但在Python中确不是这样的了.原因在于,python虚拟机中引入了GIL这一概念.GIL(Global ...

  5. python 获取文件夹名称大全_python 获取指定文件夹下所有文件名称并写入列表的实例...

    如下所示: import os import os.path rootdir = "./pic_data" file_object = open('train_list.txt', ...

  6. python获取当前线程_Python爬虫(线程,进程)

    第一章   线程的使用 并发:指的是任务数多余cpu核数 并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的 1.线程的概念 线程就是在程序运行过程中,执行程序代码的一个分支,每个运行的程序 ...

  7. Python获取磁盘使用信息,python获取GPU信息,python根据进程号获取进程信息,pynvml 获取GPU信息,psutil 获取进程信息,系统信息等

    一.工具:psutil模块 psutil是一个跨平台模块,试用相应方法可以直接获取计算机CPU,内存,磁盘,网络等资源使用情况:可以使用我们学习知识与这模块用来做系统监控,性能分析:如果大家熟悉Lin ...

  8. python获取eth0_详解 Python 获取网卡 IP 地址的黑魔法

    在 StackOverflow 上流传着这样一份用 Python 获取网卡 IPv4 地址的神秘代码. 1 2 3 4 5 6 7 8 9 10 11 12import socket import f ...

  9. python更改进程名称_更改python脚本的进程名称 - python

    有没有办法更改在Linux上运行python脚本的进程的名称? 当我执行ps时,我得到的只是"python"进程名称. 参考方案 http://code.google.com/p/ ...

最新文章

  1. Week2 Teamework from Z.XML 软件分析与用户需求调查(四)Bing桌面及助手的现状与发展...
  2. win系统下Cygwin 安装和sftp环境搭建
  3. Linux下KVM虚拟机基本管理及常用命令(转)
  4. endnote文献顺序编号不对_把Endnote装进大脑:行走的文献管理者
  5. 数据中心部署气流遏制系统需要考虑的十大要素
  6. django-模型类字段类型
  7. IO is frozen on database xxx, No user action is required
  8. c#基础知识——main
  9. Oracle 中session和processes的初始设置
  10. 坑爹的RockSaw和坑爹的windows7
  11. npm publish发布包时出现403错误no_perms Private mode enable, only admin can publish this module:
  12. Excel Mrp生产计划工具
  13. CVonline: Image Databases
  14. iphone7p配置参数详情_iPhone12系列最全的详细参数,参数党可以看看
  15. Word论文排版之样式的使用
  16. linux hairpin mode
  17. python做exe需要注意32位和64位的问题
  18. CSS中BOX模型的属性有,在CSS中,下面不属于BOX模型属性的有( )。
  19. 图像增强三大类别:点增强、空域增强、频域增强
  20. 详细对比DRAM、Flash和DDR技术

热门文章

  1. android服务器接口测试,Android单元测试:网络接口测试
  2. 再无铁饭碗?一高校启动教师全员「末位淘汰」:取消终身教职,所有人一起卷
  3. 死或生5:Mod 制作之旅(一)
  4. Samsung Galaxy Golden( Folder) SHV-E400S/K刷机(线刷)教程详细图解
  5. go unrecognized relocation (0x2a) in section `.text‘问题
  6. 将360浏览器的收藏夹导入谷歌浏览器
  7. 图片一键调整工具V1.0-免费版
  8. SuperMap iObject常见问题解答集锦(三)
  9. 想去百度?首先要搞清百度的薪酬体系
  10. 2020.07.10日报