一、线程的理解
线程是"轻量级""的,一个进程中的线程使用同样的地址空间,且共享许多资源。启动线程的时间远远小于启动进程的时间和空间,而且,线程间的切换也要比进程间的切换快得多。由于使用同样的地址空间,所以线程之间的数据通信比较方便,一个进程下的线程之间可以直接使用彼此的数据。当然,这种方便性也会带来一些问题,特别是同步问题。。
多线程对于那些I/O受限的程序特别适用。

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

三、线程的生命周期

一个线程在其生命周期内,会在不同的状态之间转换。在任何一个时刻,线程总是处于某种线程状态中。虽然不同的操作系统可以实现不同的线程模型,定义不同的线程状态,但是总的说来,一个线程模型中下面几种状态是通用的。

1、线程的创建:t=threading.Thread()
2、就绪状态:已经获得了除CPU之外的其他资源,正在参与调度,等待被执行,当调度完成之后,立即运行
3、启动状态:获得了CPU时间片段,正在运行
4、等待\阻塞状态:遇到time.sleep()时,会阻塞,暂时不参与调度,等待事件发生
5、中止状态:线程运行结束,run函数运行结束,等待系统回收其线程资源。

四、函数创建线程

执行结果:

四、类创建线程

t=MyThread(name=s[i]) 创建线程,里面的参数代表线程的名字,如果不传,系统会默认有一个名字
五、多线程之得到线程的数量

执行结果

count=len(threading.enumerate()) 获得当前运行的线程的数量
为什么线程一开始为6呢?
5个子线程+1个主线程

python—多线程定义和创建(一)相关推荐

  1. python类的定义和创建_Python类对象的创建和使用

    通过前面章节的学习,我们已经学会如何定义一个类,但要想使用它,必须创建该类的对象. 创建类对象的过程,又称为类的实例化. 类名(参数) 定义类时,如果没有手动添加 __init__() 构造方法,又或 ...

  2. 【244】Python 说出下面list1,list2,list3的输出值(新的默认列表仅仅只在函数被定义时创建一次)...

    ♣ 题目部分(原文见公众号:python宝) python宝: https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU5Nj ...

  3. 站长在线Python精讲:在Python中函数的定义与创建详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中函数的定义与创建详解>.本文的主要内容有:函数的定义.函数的定义规则.函数的创建. 目录 1.函数的定义 2 ...

  4. Python字典(字典的定义,创建字典,获取字典中的数据,字典元素增删改,获取字典视图,字典的遍历,字典的特点,字典生成公式)

    1.字典的定义 2.创建字典 3.获取字典中的数据 4.字典元素增删改 5.获取字典视图 lst={'数值1':300,'数值2':100,'数值3':400,'数值4':200} print(lst ...

  5. Python多线程(3)——Queue模块

    Python多线程(3)--Queue模块 Queue模块支持先进先出(FIFO)队列,支持多线程的访问,包括一个主要的类型(Queue)和两个异常类(exception classes). Pyth ...

  6. c++主线程等待子线程结束_简单明了的 Python 多线程来了 | 原力计划

    作者 | 万里羊责编 | 王晓曼出品 | CSDN博客线程和进程计算机的核心是CPU,它承担了所有的计算任务,就像是一座工厂在时刻运行.如果工厂的资源有限,一次只能供一个车间来使用,也就是说当一个车间 ...

  7. 人生苦短之Python多线程

    #encoding=utf-8 import threading import time''' python多线程并不是真正意义上的多线程,通常我们所说的多线程是多个线程同时执行某功能,而在pytho ...

  8. linux查看python线程,Python多线程详解

    线程概念: 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务.线程 ...

  9. python多线程与GIL

    目录 1.GIL 1.1 为什么要有GIL 1.2 GIL的运作方式 1.3 GIL带来的问题 2.多线线程 2.1 线程的调度和启动 3.线程构造与使用 3.1调用Thread类构造器创建线程 3. ...

最新文章

  1. 下载最新Android代码的方法
  2. Elasticsearch-01CentOS7单节点部署ES5.6.16
  3. 处理Xcode8输出无用的Log信息
  4. NDVI最大值法MVC合成之ArcGIS Cell Statistics 实现
  5. android系统(8)---android事件分发机制
  6. 等保2.0标准发布一周年,行业用户如何有效落实合规建设
  7. c 结构体之位域(位段)
  8. appium架构分析
  9. python中文意思-请问在python中**是啥什么意思?
  10. cpu爆了怎么排查和处理_CPU飙高,系统性能问题如何排查?
  11. FTP文件上传并支持断点续传(一)—— win10 本地环境 ftp站点构建
  12. 使用Quartz做定时器
  13. windows上面运行jar文件,Windows服务器后台运行jar包
  14. PCB设计敷铜时的天线效应
  15. Objective-C 与 C++ 的区别
  16. Android事件分发理解
  17. html返回到处乱跑,电脑鼠标乱动不受控制(鼠标到处乱跑不听使唤)
  18. 应用系统安全检测技术
  19. 欧几里得定理(nyoj775)
  20. Android AccountManager 账户同步管理简单介绍

热门文章

  1. python多级字典嵌套_python – 如何拆分字符串并形成多级嵌套字典?
  2. linux替换每个英文字开头为大写,shell脚本,文件里面的英文大小写替换方法。...
  3. 成功解决cv2.error: C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4044: error: (-215) s
  4. ML之回归预测:以某个数据集为例从0到1深入理解科学预测之回归(实数值年龄预测)问题的思路框架
  5. 在Hyperopt框架下使用XGboost与交叉验证
  6. os_mutex.c(全)
  7. 正则表达式的简单理解
  8. cxgrid列高度行宽度定义
  9. tnsname.ora
  10. oracle 显示格式化