python核心编程---读书笔记:第18章 多线程编程

第18章多线程编程多线程:异步,子任务独立,并行处理来提升任务效率使用非阻塞I/O 使用多线程变成和共享数据结构Queue用户请求线程请求处理器应答线程 18.2线程和进程进程:程序一次执行过程,有自己地址,内存,数据栈可通过fork和spawn完成其他任务,使用进程间通讯IPC 18.2.2线程同一进程的线程共享运行环境,并发执行,容易导致
摘要由CSDN通过智能技术生成

 

第18章多线程编程

多线程:异步,子任务独立,并行处理来提升任务效率

使用非阻塞I/O

 

使用多线程变成和共享数据结构Queue

用户请求线程

请求处理器

应答线程

 

18.2线程和进程

进程:程序一次执行过程,有自己地址,内存,数据栈

可通过fork和spawn完成其他任务,使用进程间通讯IPC

 

18.2.2线程

同一进程的线程共享运行环境,并发执行,容易导致不安全

 

18.3Python、线程和全局解释器锁

Python虚拟机执行Python代码,任意时刻,只有一个程序在CPU中运行

全局解释器锁GIL:对Python虚拟机的访问,保证同一时刻只有一个线程运行

执行过程:

1 设置GIL

2切换到一个线程运行

3 运行:

         a:指定指令 或

         b:线程让出控制

4 把线程设置为睡眠状态

5 解锁GIL

6 重复以上所有步骤

 

18.3.2 退出线程

threading模块能确保重要子线程退出,进程才会结束

 

18.3.3 在Python中使用线程

使用能够POSIX兼容的线程pthreads

不要使用thread的原因:主线程结束,子线程被强制结束

 

18.4 thread模块

提供:锁,互斥锁,互斥量

 

st

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值