• 并发编程杂碎小知识


    1、操作系统编写的语言:汇编语言,C语言

    2、 wins: cmd其实就是一个软件与操作系统打交道
      linux:shell解释器

    3、现在摩尔定律越来越不适用了,所以会出现技术革新,比如出现go语言,但并未找到真正更好的办法

    4、双击(启动程序)也叫交互式

    5、进程的创建 :操作系统底层会调用不同的接口

    6、 io阻塞是为了:提升效率
      cpu时间过长:降低一点效率,但为了让用户感觉到并发

    7、超时(timeout)
      为防止服务器不能及时响应,大部分发至外部服务器的请求都应该带着 timeout 参数。在默认情况下,除非显式指定了 timeout 值,requests 是不会自动进行超时处理的。如果没有 timeout,你的代码可能会挂起若干分钟甚至更长时间。

      request timeout

      timeout=3 #意思就是超时3s后断开链接

      timeout=(3,7) #timeout传入一个元组(3,7)第一位是connect连接的超时时间,第二位是read读取的超时时间


    8、多进程一般都设置为守护进程

    9、程序运行理想状态:让代码永远处于就绪态和运行态之间切换

    10、进程与进程之间数据默认情况下是无法直接交互的,如果想交互可以借助第三方工具、模块

    11、 python解释器内部的包都是用面向对象封装的

    12、实现不同机器上通信:

      利用第三方专业的消息队列:

      比如:rabbitmq(吞吐量没kafka高,有消息确认机制), kafka(吞吐量高,无消息确认机制), redis

    13、解耦合,消息队列是微服务的基础

    14、线程没有id号(可造虚拟id方便线程用,但在任务管理器里是查不到),但有名字 t.name()或t.getName()获取名字
      进程有id号,可在任务管理器里查到

    15、若几个线程都属于同一进程,所以id相同

    16、GIL的用途:py的垃圾回收机制是线程不安全的(py是解释型语言),cpython的多线程不是真正的多线程,同一时刻,只有一个线程在执行,不能利用多核优势

    17、编译型语言(比如python) 是线程安全的

    18、分布式锁可能会遇到死锁现象

    19、运行程序最理想的状态:

      进程下开多线程 多线程下再利用协程,最大程度的提升团建运行效率

    20、多核多线程比单核多线程更差,IO密集型用多线程,CPU(计算)密集型用多进程

    21、自己研究: FastApi,django3.0,sanic,tornado:支持异步,有协程

    22、io多路复用是阻塞式IO,有阻塞的过程就是阻塞式IO

    23、协程 : 保存状态 +切换

  • 相关阅读:
    linux 配置ssh免密码登陆本机
    Java连接mysql数据库并插入中文数据显示乱码
    新浪微博热门评论爬虫采集
    新浪微博热门评论抽取规则
    【MySql】Java 批量插入数据库addBatch
    算法设计题4.3 等差数列
    PHP setcookie() 函数
    Linux下用于查看系统当前登录用户信息 w命令
    Ubuntu 登录锐捷 网卡被禁用 网口灯不亮解决
    将 VMware 最小化到系统托盘
  • 原文地址:https://www.cnblogs.com/guojieying/p/13535871.html
Copyright © 2020-2023  润新知