![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python高级
文章平均质量分 90
Python高级
@人间捡故事
这个作者很懒,什么都没留下…
展开
-
Python高级 10 -协程
内容1.协程协程介绍协程,又称为微线程,它是实现多任务的另一种方式,只不过是比线程更小的执行单元。因为它自带CPU的上下文,这样只要在合适的时机,我们就可以把一个协程切换到另一个协程。CPU上下文(CPU寄存器和程序计数器):CPU寄存器是CPU的内置的容量小,但速度极快的内存。程序计数器则是用来存储CPU正在执行的指令位置、或者即将执行的下一条指令位置。协程与线程差异线程:每个线程都有自己缓存Cache等等数据,操作系统还会做这些数据的恢复操作。所以线程的切换非常消耗性能。协程:单原创 2020-07-20 14:57:17 · 230 阅读 · 0 评论 -
Python高级09 -进程
内容1. 多进程共享全局变量2. 进程间的通信这个时候就可以使用到队列进行通信。普通队列与进程队列普通队列进程队列需求实现在函数 download 中,将list元素保存到队列中实现在函数 manage_data 中,将list元素从队列中取出,并且添加到新的列表中。注意:如果使用普通队列,不是使用 start() 方法,而是 run() 方法。start() 与 run() 区别start() 方法来启动进程,真正实现了多进程运行,这时无需等待 run原创 2020-07-08 21:34:57 · 102 阅读 · 0 评论 -
Python高级08 -线程与进程
内容1.互斥锁当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制某个线程要更改共享数据时,先将其锁定,此时资源的状态为"锁定",其他线程不能改变,只到该线程释放资源,将资源的状态变成"非锁定",其他的线程才能再次锁定该资源。互斥锁保证了每次只有一个线程进行写入操作,从而保证了多线程情况下数据的正确性。2. 线程同步我们使用 threading.Condition() 完成线程同步。3. 多任务版udp聊天• 创建套接字• 绑定本地信息• 获取对方IP和端口•原创 2020-07-07 20:53:54 · 108 阅读 · 0 评论 -
Python高级 07 - 线程一
内容1. 多任务多任务介绍同时做多件事情(多个任务)就叫多任务。多任务理解并发:CPU小于当前的执行的任务。是假的多任务并行:CPU 大于当前执行的任务。是真的多任务实现多任务的三种方式线程进程协程2. 线程2.1线程介绍线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。2.2 使用线程完成多任务注意:主线程会等到子线程执行结束之后主线程,才会结束2.3 防护线程守护线程,也就是说不会等子线程结束使原创 2020-07-03 12:07:59 · 93 阅读 · 0 评论 -
Python高级 06- TCP发送与接收数据
内容1. TCP协议介绍当应用程序希望通过TCP与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP将在两个应用程序之间建立一个全双工(full-duplex)的通信。这个全双工的通信将占用两个计算机之间的通信路线,直到它被一方或双方关闭为止。三次握手数据传输四次挥手TCP特点面向连接可靠传输TCP采用发送应答机制超时重传错误校验流量控制和阻塞管理2. UDP协议介绍当应用程序希望通过UDP与原创 2020-07-01 21:15:48 · 639 阅读 · 0 评论 -
Python高级 05 - UDP发送与接收数据
内容1. 计算机网络的发展及基础网络概念两台电脑的通信网线网卡唯一标识mac地址,但复杂。使用ip地址唯一标识。IP地址与IP协议规定网络地址的协议叫ip协议,它定义的地址称为ip地址。广泛采用的v4版本的即ipv4,它规定网络地址由32位2进制表示。注意:一个ip地址通常写成四段十进制数范围0.0.0.0-255.255.255.255windows查看网卡信息IP地址分类以太网交换机为了解决多台机器之间的通信问题。端口端原创 2020-06-28 21:39:43 · 383 阅读 · 0 评论 -
Python高级 04 - Python元类及迭代器生成器
内容1. __getattr__和__getattribute__魔法函数__getattr__是当类调用一个不存在的属性时才会调用getattr魔法函数,他传入的值item就是你这个调用的不存在的值。getattribute__则是无条件的优先执行,所以如果不是特殊情况最好不要用__getattribute。2. 属性描述符属性描述符介绍属性描述符是一个强大的通用协议。它是properties, methods, static methods, class methods 和sup原创 2020-06-27 19:23:32 · 165 阅读 · 0 评论 -
Python 高级03 - 垃圾回收及性能分析
内容1.通过实例方法名字的字符串调用方法我们有三个图形类 Circle,Triangle,Rectangle他们都有一个获取图形面积的方法,但是方法名字不同,我们可以实现一个统一的获取面积的函数,使用每种方法名进行尝试,调用相应类的接口getattr(x,“y”,None) --> 等同于 x.y 当x中不含有y时,返回Nonemap(func,iterable) --> 将iterable中的元素一一映射到func函数中处理,并且返回新的map对象。原创 2020-06-25 20:41:49 · 165 阅读 · 0 评论 -
Python高级 02 - 类与对象深度问题及解决技巧
内容1. 如何派生内置不可变类型并修改其实例化行为回顾__new____new__方法是创建对象的方法1.此处重写了父类的方法2.需调用父类的__new__方法创建对象3.需将对象返回出来给__init__方法2. 如何为创建大量实例节省内存练习需求在游戏开发中,有一个玩家类Player,每有一个在线玩家,在服务器内则有一个player的实例,当在线的人数很多时,将产生大量实例(百万级)如何降低这些大量实例的内存开销?解决方案:定义类的 _ _ slots _原创 2020-06-23 21:31:06 · 194 阅读 · 0 评论 -
Python 高级 01- 深入类和对象
内容1.鸭子类型与多态鸭子类型多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚"鸭子类型"动态语言调用实例方法时不检查类型,只要方法存在,参数正确,就可以调用。这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。多态定义时的类型和运行时的类型不一样,就称为多态。2. 抽象基类(abc模块)抽象基类介绍抽象基类(abstract base class,ABC):抽象基类原创 2020-06-22 17:10:19 · 189 阅读 · 0 评论