zoukankan      html  css  js  c++  java
  • 线程

    生产者消费者模型

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

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

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

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

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

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

    线程thread

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

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

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

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

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

    线程的属性

             Daemon 守护线程

             current_thread 当前线程

             active_count 当前运行的线程个数

             enumerate  枚举

             join

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

             Semaphore  信号量

    线程 和进程的区别

           进程是一个资源单位

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

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

          线程开销比进程小

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

  • 相关阅读:
    maven编译时GBK错误
    生产环境中,通过域名映射ip切换工具SwitchHosts
    Java中的Filter过滤器
    Notepad++远程连接Linux系统
    MySQL 创建帐号和对表的导入导出
    XML 初识
    MySQL 字符集的设置
    C# 委托
    肖申克的救赎
    C#指针 常用手段
  • 原文地址:https://www.cnblogs.com/zhouhai007/p/9936947.html
Copyright © 2011-2022 走看看