这是一篇学习Python 线程相关的内容,记录一下以备复习和开发使用,技术有限,如有问题欢迎指出,多谢。

一.GIL 全局解释器锁(cpython)

1.为什么会有这个锁:为了线程安全,减少python使用者的上手难度

GIL 使得同一个时刻只有一个线程在一个cpu上执行字节码,无法隐射到多个cpu,多核上执行。

2.特殊情况下会释放GIL:达到特定字节码行数、到底特定数目时间片、IO操作(主动)

二:并发和并行的区别

并发:描述程序的组织结构,指程序要被设计成多个可独立执行的子任务

并行:描述程序的执行状态,指多任务需要同时执行

三:守护线程&线程阻塞

守护线程:thread.setDaemon(true),当主程序退出的时候让子程序也一并退出

子线程阻塞:thread.join(),当子程序都结束后主程序再退出

四:多线程的写法

实例化Threading,调用Threading的方法去进行多线程编程

写子类继承Theading,重写相应的方法

说明:当程序简单时可使用实例化方法,当程序较复杂的时候,实现逻辑较多,第二种方法。

五:线程间通信

1.共享变量:

方法简单,也可以写入到单独的py文件中。问题:线程不安全,易出问题。

2.queue 队列:

使用queue 的 Queue,这个是线程安全的

python 线程通信的几种方式_Python 线程、线程通信、多线程相关推荐

  1. linux系统线程通信的几种方式,Linux进程间通信-线程间通信

    Linux作为一种新兴的操作系统,几乎支持所有的Unix下常用的进程间通信方法:管道.消息队列.共享内存.信号量.套接口. 1.管道 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动 ...

  2. python读文件的三种方式_Python|读、写Excel文件(三种模块三种方式)

    python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别: 用xlrd和xlwt进行excel读写: 用openpyxl进行excel读写: import xlrd from xlut ...

  3. python函数参数传递的两种方式_Python函数的参数传递方式

    Python函数的参数传递方式 一.普通 def add(a,b): return a+b print(add(1,2)) #输出结果:3 二.可选参数 def myjoin(string,sep=' ...

  4. 创建线程池的四种方式_创建线程到底有几种方式?

    很多时候,在项目中使用线程的情况很少,导致很多人只停想起最常见的两种创建线程的方法,即继承Thread类和实现Runnable接口. 而网络上大家有人认为是三种实现方式,也有人认为是四种实现,下面我们 ...

  5. python连接mysql的几种方式_Python连接MySQL数据库的多种方式

    本次代码实现连接远程服务器 由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器. 目前,MySQL驱动有几种: mysql-c ...

  6. python字符串换行的三种方式_python中的字符串内部换行方法

    python中的字符串内部换行方法 python里有两种在字符串内部换行的方式(使用一个print打印多行字符串). 首先使用\n的方法大家肯定都知道了. 然后是使用 ''' 三个单引号大方法. 在交 ...

  7. python读取文件的三种方式_python中读取文件的f.seek()方法

    用于二进制文件中 F.seek方法 作用: 设置读写位置 F.seek(偏移量, whence=相对位置) 偏移量 大于0的数代表向文件末尾方向移动的字节数 小于0的数代表向文件头方向中移动的字节数 ...

  8. python字符串换行的三种方式_Python 字符串换行的多种方式

    第一种: x0 = '<?xml version="1.0"?>' \ ' ' \ ' Python' \ ' Ruby' \ ' ' 第二种: x1 = '<? ...

  9. python下载文件的11种方式_Python下载文件的11种方式

    在本教程中,你将学习如何使用不同的Python模块从web下载文件.此外,你将下载常规文件.web页面.Amazon S3和其他资源. 最后,你将学习如何克服可能遇到的各种挑战,例如下载重定向的文件. ...

最新文章

  1. 基于耳-脑电图的脑机接口研究进展
  2. TongJI Online Judge预赛(2): LOVE LETTER
  3. Linux执行yum不显示时间图形,Linux停的yum命令详解(朝花夕拾)
  4. Dalvik内存管理
  5. 一文看懂WebTransport
  6. Maven构建项目 — 知识点梳理
  7. 2013北理机试题——中缀算术表达式对应二叉树的先序遍历
  8. 利用ffmpeg一步一步编程实现摄像头采集编码推流直播系统
  9. VS编译器的使用——VS2019新建控制台工程
  10. SCI期刊分区介绍 / 中国科学技术信息研究所SCI(E)论文期刊分区列表——2017年-2020年-文件分享
  11. [译文]GBAGuy的GBA ASM教材 第一章 概述
  12. python3 flask 使用Mysql数据库
  13. 团队管理那点破事,OKR绩效、核心人才、面试、技术分享、研发流程
  14. ElasticSearch 7.7.0 高级篇-搜索技术
  15. MapReducer的map和reducer的几种写法模板以及自定义数据类型
  16. 神州信息与瀚华金控签署战略协议 共推数字普惠金融
  17. Bmob 萌新也能简易上手 之一 注册登录- *2020版 (有demo)
  18. 园区网运维经验之ARP协议
  19. python农历_用python计算农历/阴历假日
  20. 大卫艾克~雄狮醒来2:实相的本质(中字)

热门文章

  1. Java在编译到执行过程的编码问题
  2. Mysql创建Create Function
  3. WKWebView使用及注意点(keng)
  4. 计算机考试C1-1随笔
  5. windows 提示缺少VCRUNTIME140.dll错误
  6. linux IO_FILE 利用
  7. 各种矩阵(向量)求导
  8. JavaScript小练习-计算银行卡余额案例
  9. Java项目开发,学生信息管理系统
  10. imx6开发环境搭建之yocto全记录(L4.1.15_2.0.0)