python 线程通信的几种方式_Python 线程、线程通信、多线程

这是一篇学习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,这个是线程安全的

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值