python
文章平均质量分 81
python基础
Ban_a
这个作者很懒,什么都没留下…
展开
-
【并发编程—结束】
文章目录GIL与普通和互斥锁区别验证多线程作用代码验证–计算密集型代码验证–IO 密集型死锁现象信号量与event事件Event 事件进程池与线程池concurrent.fututres 模块`ProcessPoolExecutor `类–进程池开启方法及属性介绍协程什么是协程协程的优缺点:greenlet 模块greenlet实现状态切换效率对比Gevent模块方法介绍IO阻塞查看threading.current_thread().getName()Gevent之同步与异步Gevent之应用多线程并发多原创 2022-04-21 22:22:07 · 437 阅读 · 0 评论 -
【python协程】
文章目录协程什么是协程协程的优缺点:greenlet 模块greenlet实现状态切换效率对比Gevent模块方法介绍IO阻塞查看threading.current_thread().getName()Gevent之同步与异步Gevent之应用多线程并发多个客户端协程什么是协程协程:是单线程下的并发,又称微线程,纤程。协程是一种用户态的轻量级线程,即协程是由用户自己控制调度的简而言之:在计算机层面没有协程,而是程序员根据代码实现CPU的切换注意:python的线程属于内核级别的,即由操作系统原创 2022-04-21 18:07:19 · 153 阅读 · 0 评论 -
【进程池与线程池】
文章目录进程池与线程池concurrent.fututres 模块`ProcessPoolExecutor `类–进程池开启方法及属性介绍ThreadPoolExecutor类–线程池的开启进程池与线程池在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁进程也需要消耗时间。第二即便开启了成千上万的进程,操作系统也不能让他们同时执行,这样反而会影响程序的效率。因此我们不能原创 2022-04-21 18:04:58 · 768 阅读 · 0 评论 -
【python线程与GIL 锁】
消息队列队列:先进先出堆栈:先进后出from multiprocessing import Queueq = Queue(5) # 自定义队列的长度# 朝队列中存放数据q.put(111)q.put(222)q.put(333)print(q.full()) # False 判断队列是否满了q.put(444)q.put(555)print(q.full()) # True# q.put(666) # 超出最大长度 原地阻塞等待队列中出现空位print(q.get(原创 2022-04-20 22:59:01 · 1354 阅读 · 1 评论 -
【python进程】
文章目录代码创建进程第一种方法第二种方法,类的继承,join方法进程间数据默认隔离进程对象的属性和方法僵尸进程与孤儿进程僵尸进程孤儿进程守护进程互斥锁代码创建进程Windows操作系统下,创建进程一定要在main里面创建,因为Windows下创建进程是类似模块导入的方式(windows下诞生双胞胎的方式是以模块的形式导入一份同样的代码,往新的内存空间里面去放),会从上而下运行代码,如果不在main里面创建进程,每一次导入模块的时候,都会执行一次创建进程,结果就是没完没了的死循环了,所以放在main里面,原创 2022-04-19 21:10:54 · 686 阅读 · 0 评论 -
【并发编程】
文章目录并发编程进程与线程进程调度算法发展史进程的目的:进程的重要概念:并发与并行高并发与高并行同步与异步阻塞与非阻塞同步异步与阻塞非阻塞结合并发编程发展史:在早期的计算机中不包含操作系统,它们从头到尾只可以运行一个程序,操作系统的出现使得计算机每次能运行多个程序,并且不同的程序都在单独的进程中运行,之所以在计算机中加入操作系统来实现多个程序的同时执行,主要是基于下面几个原因1. 资源利用率在某些情况下,程序必须等待某个外部操作执行完成,而等待时程序无法执行其他任何工作。因此,如果在等待同时可以运行原创 2022-04-18 16:41:58 · 1498 阅读 · 0 评论 -
【socket套接字】
文章目录socket套接字socket工作流程Tcp 服务端:Tcp 客户端:基于 Tcp 的scoket 服务端与客户端编程简易版加入链接循环加入通信循环支持并发的 Tcp 服务端常见问题半连接池黏包问题解决黏包问题socket套接字socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的例如我们每天浏览网页、QQ 聊天、收发 email 等等1.socket介绍1原创 2022-04-15 22:48:06 · 3701 阅读 · 0 评论 -
【网络编程】
目录网络编程软件开发的架构网络通信的原理互联网的本质就是一系列的网络协议OSI七层协议tcp/ip五层模型讲解专业设施名词三次握手与四次挥手Tcp 协议比 Udp 协议更加可靠的原因网络编程网络编程的研究前提就是基于互联网 网络编程就是基于互联网编写代码软件开发的架构第一种是应用类(C/S架构):如:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用第二种是web类(B/S架构):比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用C/S架构C: Client(客户端)S: Se原创 2022-04-14 17:00:41 · 114 阅读 · 0 评论 -
【设计模式与pickle模块】
目录设计模式设计模式的分类设计模式之单例模式(23种之一)、单例模式的意图pickle模块设计模式设计模式是前辈们发明的经过反复验证用于解决固定问题的固定套路设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式的分类经典的《设计模式》一书归纳出23种设计模式,这23种模式又可归为,创建型、结构型和行为型3大类设计模式之单例模式(23种之一)、单例模式的意图保证原创 2022-04-12 22:50:48 · 560 阅读 · 0 评论 -
【python 模块三】
目录hashlib加密模块logging日志模块第三方模块openpyxl模块hashlib加密模块# 什么是加密 将明文(人看得懂)数据通过一些手段变成密文数据(人看不懂) 密文数据的表现形式一般都是一串没有规则的字符串 # 加密算法 加密算法有很多种>>>(将明文变密文的内部规则) 算法的难易程度可以根据产生密文的长短来判断 越长意味着算法越复杂 # 什么时候使用加密 涉及到隐私数据的时候 应该考虑使用加密 最为常见的就是对用户的密码加密原创 2022-04-12 19:33:45 · 229 阅读 · 0 评论 -
【面向对象四】
目录面向对象的双下方法元类产生类的两种表现形式(本质是一种)元类的基本使用元类进阶操作面向对象的双下方法> 1.__str__ 对象被执行打印(print、前端展示)操作的时候自动触发 该方法必须返回字符串类型的数据 很多时候用来更加精准的描述对象2.__del__ 对象被执行(被动、主动)删除操作之后自动执行3.__getattr__ 对象查找不存在名字的时候自动触发4.__setattr__ 对象在执行添加属性操作的时候自动触发 >>> o原创 2022-04-12 15:20:15 · 87 阅读 · 0 评论 -
【面向对象三】
目录面向对象三大特性之封装@property装饰器面向对象三大特性之多态鸭子类型鸭子类型:“如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子”。比起继承的方式,鸭子类型在某种程度上实现了程序的松耦合度面向对象之反射面向对象三大特性之封装我们可以将类中的某些属性隐藏起来,不来人直接调用,可以通过专门的接口来访问在变量名的前面加两个下划线__就可以隐藏名字,但是可以通过_类名__属性名直接访问# 定义一个Student类,school这个属性是被隐藏的,可以在类中设置接口来调用schoolcla原创 2022-04-08 23:15:27 · 105 阅读 · 0 评论 -
【面向对象二】
目录动态方法与静态方法动态方法静态方法(@staticmethod)面向对象的三大特性之一:继承继承的含义继承的目的继承的基本使用继承的本质属性查找派生类动态方法与静态方法动态方法绑定给对象的方法class Student: def run(self): print(self)Student.run(11) # 11Student().run() # <__main__.Student object at 0x000001B57A5BC390>类原创 2022-04-07 21:18:33 · 148 阅读 · 0 评论