• 线程


    生产者消费者模型

      生产者指的是能够产生数据的一类任务

      消费者是指对上面的数据的处理

      比如:让你打开一个文件查找某个词语,打开文件的过程叫生产者,查找的过程叫消费者

    形成原因:生产者和消费者的能力不匹配. 会导致资源的浪费,这样我们就需要一个公共的存储数据的区域

    解决方案: 1.创建2个进程 一个负责生产  一个负责消费(注意生产和消费的结束JoinableQueue)

             2.在用对列在存储需要共享的数据

    线程thread

             在多进程中 开启子进程需要消耗大量的资源  所以主进程会先比子进程早执行

      子线程的开启速度比主进程快的多

      在多线程中 子线程可以直接访问主线程的内容

      多个线程之间是平等的   所以不存在父子关系

      在开发中 每当出现i/o阻塞  是比较耗时的操作

    线程的属性

             Daemon 守护线程

             current_thread 当前线程

             active_count 当前运行的线程个数

             enumerate  枚举

             join

             Lock  Rlock(就算你的代码逻辑不对同一个线程多次对一个锁执行acquire也不会卡死)

             Semaphore  信号量

    线程 和进程的区别

           进程是一个资源单位

           一个进程可以包含多个线程

          多个线程之间数据可以共享

          线程开销比进程小

          在多线程中CPU的切换速度会非常快 但资源消耗没有进程高

  • 相关阅读:
    Python解析excel文件并存入sqlite数据库
    python简单爬虫
    Python开发简单记事本
    Django初体验——搭建简易blog
    LeetCode — (1)
    机器学习(九)—FP-growth算法
    机器学习(八)—Apriori算法
    linux下debug工具
    linux同步与通信
    后台开发之IO缓冲区管理
  • 原文地址:https://www.cnblogs.com/zhouhai007/p/9936947.html
Copyright © 2020-2023  润新知