05 2024 档案

Greenlet模块、Gevent模块、asynicomok模块(协程函数和协程对象)、案例(爬虫)
摘要:【一】Greenlet模块 如果我们在单个线程内有20个任务 要想实现在多个任务之间切换 使用yield生成器的方式过于麻烦(需要先得到初始化一次的生成器,然后再调用send。。。非常麻烦 而使用greenlet模块可以非常简单地实现这20个任务直接的切换 # 【1】安装模块 # pip insta 阅读全文

posted @ 2024-05-29 08:51 光头大炮 阅读(91) 评论(0) 推荐(0) 编辑

信号量、事件、队列补充、进程池和线程池(概念、方法、同步提交和异步提交)、协程
摘要:【一】信号量 信号量Semahpore(同线程一样) 【1】什么是信号量 互斥锁:允许在同一时刻只能有一个线程或进程同资源进行修改 信号量:允许指定数量的进程或线程对资源继续修改 【2】例子 比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去 Lock 锁住一个马桶, 阅读全文

posted @ 2024-05-29 08:50 光头大炮 阅读(34) 评论(0) 推荐(0) 编辑

守护线程、线程间的互斥锁、GIL全局解释器锁(计算密集型、IO密集型)、死锁和递归锁
摘要:【一】守护线程 Python中的主线程是程序的起始线程,即程序启动时自动创建的第一个线程,它执行程序的主体逻辑。 守护线程则是在后台运行并依赖于主线程或非守护线程的存在。 【1】主线程死亡,子线程未死亡 主线程结束运行后不会马上结束,而是等待其他非守护子线程结束之后才会结束 如果主线程死亡就代表着主 阅读全文

posted @ 2024-05-29 08:48 光头大炮 阅读(15) 评论(0) 推荐(0) 编辑

进程间通信(管道)、多线程理论、开设多线程的两种方式、threading介绍、线程之间共享数据、多线程以及多进程时间比较
摘要:【一】进程间通信(管道) 借助于消息队列,进程可以将消息放入队列中,然后由另一个进程从队列中取出。 这种通信方式是非阻塞的,即发送进程不需要等待接收进程的响应即可继续执行。 multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 进程间通信(IPC)有两种方式:队列 阅读全文

posted @ 2024-05-27 18:19 光头大炮 阅读(153) 评论(0) 推荐(0) 编辑

互斥锁、进程间通信(IPC)、队列(queue)模块、队列实现进程间通信、生产者和消费者模型
摘要:【一】互斥锁 【1】什么是进程同步(互斥锁) 互斥锁(Mutex)是一种用于多线程编程中控制对共享资源访问的机制。 其作用是保证在同一时刻只有一个线程在访问共享资源,从而避免多个线程同时读写数据造成的问题。 互斥锁的基本原理是在对共享资源进行访问前加锁,使得其他线程无法访问该资源,当访问完成后再解锁 阅读全文

posted @ 2024-05-27 18:19 光头大炮 阅读(220) 评论(0) 推荐(0) 编辑

僵尸进程和孤儿进程、守护进程
摘要:【一】僵尸进程和孤儿进程 【1】引入 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。 子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者wait 阅读全文

posted @ 2024-05-27 18:19 光头大炮 阅读(136) 评论(0) 推荐(0) 编辑

multiprocessing模块介绍
摘要:【一】multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启子进 阅读全文

posted @ 2024-05-23 20:51 光头大炮 阅读(154) 评论(0) 推荐(0) 编辑

【补充】进程理论:开设多进程的方式、多进程实现服务端并发、join实现并发
摘要:【补充】进程理论 【一】开设多进程的两种方式 【1】在Windows上启动子进程 #必须将启动入口放到 if __name__ == '__main__': ''' 由于Windows没有fork,多处理模块启动一个新的Python进程并导入调用模块。 如果在导入时调用Process(),那么这将启 阅读全文

posted @ 2024-05-23 20:51 光头大炮 阅读(11) 评论(0) 推荐(0) 编辑

进程理论、进程与程序的区别、调度算法、进程的创建,状态,终止
摘要:【一】进程理论 【1】什么是进程 (1)理论 正在进行的一个过程或者说一个任务 而负责执行任务则是 cpu (2)单任务 一个单独的任务 单核 + 多道,实现多个进程的并发执行 一段时间段只能做一件事:铺床、吹头发、睡觉(cpu 同一时间只能干一个活) (3)多任务 一段时间可以做很多件事 铺会床 阅读全文

posted @ 2024-05-23 20:50 光头大炮 阅读(73) 评论(0) 推荐(0) 编辑

socketserver模块、操作系统、操作系统的发展史
摘要:【一】socketserver模块 【1】简介 socketserver中包含了两种类, 一种为服务类(server class):前者提供了许多方法 像绑定,监听,运行…… (也就是建立连接的过程) 。 一种为请求处理类(request handle class) 专注于如何处理用户所发送的数据( 阅读全文

posted @ 2024-05-22 19:46 光头大炮 阅读(24) 评论(0) 推荐(0) 编辑

三次握手和四次挥手、UDP、TCP、粘包问题、模块回顾
摘要:【一】三次握手和四次挥手 【1】TCP协议的三次握手和四次挥手 TCP协议位于 osi 七层协议中的传输层 (1)使用三次握手来建立连接 一次握手: 客户端发送带有 SYN (SEQ=x)标志的数据包 》服务端,然后客户端进入 SYN_SEND 状态,等待服务器的确认。 二次握手: 服务端发送带有 阅读全文

posted @ 2024-05-22 14:28 光头大炮 阅读(35) 评论(0) 推荐(0) 编辑

Scoket层
摘要:Scoket层 【一】Scoket层在哪 【二】套接字工作流程 一个生活中的场景。 你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。 等交流结束,挂断电话结束此次交谈。 生活中的场景就解释了这工作原理。 【0】服务端流程 先从服务器端说起。 服 阅读全文

posted @ 2024-05-20 19:15 光头大炮 阅读(19) 评论(0) 推荐(0) 编辑

常见的网络结构模式、CS、BS模型、七层协议、五层协议
摘要:【一】常见的网络结构模式 【1】CS模型 C是英文单词 “Client” 的首字母,即客户端的意思 C/S 就是“Client/Sever”的缩写,即“客户端/服务器”模式。 例如:拼多多APP、淘宝APP、PC上的有道云笔记等。 【2】BS模型 B是英文单词“Browser”的首字母,即浏览器的意 阅读全文

posted @ 2024-05-20 19:14 光头大炮 阅读(2429) 评论(0) 推荐(0) 编辑

设计模式之单例模式、类属性、装饰器、元类(metaclass)、基于__new__方法
摘要:【1】设计模式之单例模式 经典设计模式总共有23种,但其中只有少数几种被广泛使用。 常见的设计模式有单例模式、工厂模式、观察者模式、适配器模式、策略模式、装饰器模式、代理模式等。 实际常用的可能不超过其中的一半 其中单例模式是主要使用的设计模式之一 【2】为什么要单例模式 单例设计模式(Single 阅读全文

posted @ 2024-05-20 08:45 光头大炮 阅读(21) 评论(0) 推荐(0) 编辑

面向对象内置方法、isinstance和issubclass、元类
摘要:【一】__init__(),__del__(),__new__(),__call__ Python的Class机制内置了很多特殊的方法来帮助使用者高度定制自己的类 这些内置方法都是以双下划线开头和结尾的,会在满足某种条件时自动触发 这个方法是一个类的构造函数,与之对应的__del__()是析构函数, 阅读全文

posted @ 2024-05-20 08:45 光头大炮 阅读(21) 评论(0) 推荐(0) 编辑

抽象类、多态、绑定(classmethod)和非绑定方法(staticmethod)、反射的四种具体使用、魔法方法
摘要:【一】抽象类 【1】什么是抽象 与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化 【2】抽象类方法 所有继承父类的子类必须重写父类的某些方法,这个父类就叫抽象类 # 一切皆文件 # 利用abc模块实现抽象类 impo 阅读全文

posted @ 2024-05-20 08:45 光头大炮 阅读(12) 评论(0) 推荐(0) 编辑

继承介绍、经典类和新式类、继承和抽象、封装和派生、组合
摘要:【一】继承介绍 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类。 子类会“遗传”父类的属性,从而解决代码重用问题(去掉冗余的代码) 继承: 单继承:继承一个父类的子类 多继承:继承多个父类的子类 class Stu 阅读全文

posted @ 2024-05-09 20:37 光头大炮 阅读(58) 评论(0) 推荐(0) 编辑

面向对象的三大特性、封装的介绍及属性、装饰器property、员工管理系统
摘要:【一】面向对象的三大特性 封装: 封装指的就是把数据与功能都整合到一起 继承 多态 【二】什么是封装 封装是对具体对象的一种抽象 意思就是将某部分功能和代码隐藏起来,在程序外边看不到,只能在程序内部使用 【三】为什么要封装? 封装数据的主要原因是:保护隐私(把不想别人知道的东西封装起来) 【四】封装 阅读全文

posted @ 2024-05-08 20:25 光头大炮 阅读(25) 评论(0) 推荐(0) 编辑

面向对象、面向过程、类与对象
摘要:【一】人狗大战 【1】人狗大战小游戏描述 人可以打狗,狗掉血,狗可以咬人,人掉血 【2】人狗大战小游戏实现 (0)分析 人的属性 人的名字 人的类型 人的年龄 人的攻击力 人的生命值 狗的属性 狗的名字 狗的类型 狗的攻击值 狗的生命值 (1)定义人和狗的参数 方式一:使用字典定义属性 dog1 = 阅读全文

posted @ 2024-05-08 20:22 光头大炮 阅读(22) 评论(0) 推荐(0) 编辑

二分法、冒泡排序
摘要:【一】二分法 二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法 思路: 首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。 如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤的操作。 如果某一步数组为空, 阅读全文

posted @ 2024-05-07 20:18 光头大炮 阅读(30) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示