ITPub博客

首页 > 数据库 > 数据库开发技术 > python并发编程(1)-序(可能是一堆废话)

python并发编程(1)-序(可能是一堆废话)

原创 数据库开发技术 作者:程序员小钟同学 时间:2021-04-01 18:10:25 0 删除 编辑

序言

python并发编程大概是每个程序员必然的经历,不管是应用在web开发,大数据,还是爬虫还是AI算法的等领域。都是需要有所了解和会应用。但是说能融会贯通,运用自如,大概我也不行。

之前在掘金里以后介绍过关于Fastapi这个异步框架的初步使用。但是还是处于浅尝辄耻的状态,也还还是未能深入把异步应用到位。有些时候是不明白,

  • 为什么需要引入异步,它处理能更高效?
  • 它的原理是什么?
  • 为什么异步能提高并发?内部的机制什么原来?

反思再三,还是对一些概念理解上还是不够透彻,于是乎从下面的系列的开始,我自己会按我自己以往学习的心得,或者是边学边梳理的一些笔记进行相关整理。人是一个容易健忘的东西,其实人的大脑不应该是来记住东西,其实是用来思考东西的多点,所以有些东西,可能我也做不到过目不忘,所以接下来一些文章整理主要是为方便自己后续查缺补漏。

1 关于并发絮叨

一说到并发的话题,其实可以练习到的问题很多,深入挖掘的话,其实会发现我们会涉及操作系统领域的基础知识。

如:

  • 一个程序是如何运行起来的?
  • 什么是并发和并行?
  • 什么是异步,同步,阻塞和非阻塞?
  • 什么是进程和线程?
  • 什么是协成?
  • 什么是IO多路复用?分别有哪五种IO模型?
  • IO复用select/poll/epoll的基本原理是怎么样的?
  • 进程在操作内部是如何调度?
  • 什么是IO密集型运算?什么是CPU密集型运算?
  • linux下进程是如何管理?
  • 进行程、线程的调度算法是怎么样?
  • 什么是进程上下文切换?什么是线程上下文切换?
  • 什么是内核态和用户态?
  • 操作系统对虚拟内存的管理机制是怎么样?
  • 什么python的线程无法分配到多核CPU上运行?
  • 什么是GLI全局解释锁?
  • 操作系统内部的进程是如何进行通讯?进程之间的同步和互斥是什么?
  • 什么是进程的用户栈和内核栈?
  • 什么是内核空间和用户空间?
  • ···········

其实我可以有无限个什么是什么,计算机领域涉及的东西太多了,所以学无止境,大概就是这个意思的吧!当然人也不可能把所有的领域都涉猎,除非你是超神。

所谓的术业有专攻,专注于自己感兴趣的领域里不断的发掘,你就会发现其实很多知识点都是息息相关,相辅相成的。

说到底,所谓的异步,其实目的就是为了更高效的处理我们的业务,那如何更高效的处理我们的业务,那就是所谓的高并发了,对于高并发。最近深入人心一个概念就是协程:不管是java(纤程),go都有对应的概念衍生出来。

为什么我们已经有了多进程和多线程灯处理方案,还需要一个协程来呐?他们的处理机制有什么不一样的呐?这些其实都是我们的需要了解和思考的问题。

感觉关于并发编程,如果不是朝夕能成的,但是本着不积跬步无以至千里的道理,我还是有必要重头开始梳理一下自己对并发编程一些心得。

并发编程系列内容:

  • 1:操作系统基础知识(了解基本的概念和理论)
  • 2:操作系统对进程的调度设计相关知识点
  • 3:操作系统对线程的调度(线程是和CPU核绑定的,而进程会在核中间进行切换)
  • 4:操作系统内存管理机制?
  • 5:python中多进程和多线程和协成相关知识点
  • 6: 并发相关的应用和实践
  • 7:Fastapi框架中关于协程深入学习和应用实践
  • 8:异步的使用如:cerley的深入继续使用
  • ··········
  • 估计后续会想到哪里就写到哪里··········

个人其他博客地址

简书:https://www.jianshu.com/u/d6960089b087

掘金:https://juejin.cn/user/2963939079225608

小钟同学 | 文 【原创】| QQ:308711822 欢迎交流学习

  • 1:本文相关描述主要是个人的认知和见解,如有不当之处,还望各位大佬指正。
  • 2:关于文章内容,有部分内容参考自互联网,如有链接会声明标注;如没有及时标注备注的链接的,如有侵权请联系,我会立即删除处理哟。


原文作者:程序员小钟同学;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-02-20

  • 博文量
    224
  • 访问量
    111708