美文网首页
python 多线程和多进程相关概念

python 多线程和多进程相关概念

作者: stay丶gold | 来源:发表于2018-09-08 23:27 被阅读0次

    python默认解释器是Cpython,内存管理不是线程安全的,所以Cpython有一个东西叫GIL,全局解释器锁。

    *进程:每个应用程序至少有一个进程,每个进程至少有一个线程

    • python 多线程实际上底层是单核在多个线程上来回执行,在处理io或者下载等耗时操作时常用

    • 而涉及到密集cpu计算的场景,则不建议使用多线程来回切换,而应该使用多进程,即多核进行运算

    • 并发:是指系统具有处理多个任务的能力

    • 并形:是指系统具有同时处理多个任务的能力,属于并发的子集

    • 同步: 当系统执行IO操作的时候阻塞,等待数据(例如打电话,必须一直等着对方接听)

    • 异步: 当系统执行IO操作的时候不阻塞,数据接受成功后再回来处理(例如发短信,等对方回了在看消息)

    • Lock:同步锁,只允许单个线程的执行数据

    • Rlock:内部实际上是计数器,当计数器大于0时,只有一个线程能够执行锁住的内容,当计数器为0时,线程开始抢锁,此时重新开始计数

    • Event:同步,通过set,clear,wait可以控制线程切换执行

    • daemon: 守护进程,跟随子线程跟随主线程退出而退出

    • Semaphore:信号量,多个线程锁,可以允许多个线程执行数据

    • queue:队列,线程安全的数据结构

    • 进程Queue,进程队列,用于进程间通信

    • PIPE :双向管道 ,主进程和子进程间通信

    • Manager :不同进程数据共享

    • 协程:本质上是一个线程,不是抢占式的程序,可以由用户控制切换时机,优点是没有切换的资源消耗和锁的概念

    相关文章

      网友评论

          本文标题:python 多线程和多进程相关概念

          本文链接:https://www.haomeiwen.com/subject/nghaiftx.html