摘要: 递归锁 互斥锁 递归锁 死锁 死锁就是在使用互斥锁的时候,同时开启了两把锁,就会导致死锁问题 因为同一时间只能由一个线程打开锁,然后关闭锁之后才可以去有另外一个线程去执行锁 就是一个线程还没有释放一个锁,但是另一个线程已经拿到了其他锁的钥匙,导致第一个执行的线程没办法拿到下一个锁的钥匙,也没办法执行 阅读全文
posted @ 2019-09-18 17:10 cheerxiong 阅读(1092) 评论(0) 推荐(0)
摘要: 自己的分析 GIL锁就是一个全局解释器锁 也就是python中因为有垃圾回收机制的存在。垃圾回收机制也是一个线程,如果所有的线程都可以使用cpu的不同资源(也就是多核 cpu并行处理线程的情况) 这里涉及到一个小知识 我们知道在一个语言中,要对一个变量名进行赋值操作,就不是表面所看见的拿到内存中所存 阅读全文
posted @ 2019-09-18 15:35 cheerxiong 阅读(352) 评论(0) 推荐(0)
摘要: 了解线程 1.什么是线程 在传统的操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程,其实就是一条流水线的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一个流水线 流水线的工作需要带能源,电源就相当于CPU 阅读全文
posted @ 2019-09-17 18:46 cheerxiong 阅读(361) 评论(0) 推荐(0)
摘要: [TOC] 1.互斥锁 首先导入Lock模块 实例化一把锁 但是每次生成子进程的时候都会重新实例化一把锁,我们的目的是想让所有的子进程使用同一把锁,所以需要把锁传递给子进程在使用 锁名.acquire():开锁 所有子进程开始抢位置 锁名.release():关锁 位置排好了,开始执锁起来执行. j 阅读全文
posted @ 2019-09-16 15:39 cheerxiong 阅读(281) 评论(0) 推荐(0)
摘要: [TOC] 1.创建多进程的两种方式 1.1 方式一(函数) 1.2 方式二(类) 2.孤儿进程和僵尸进程 孤儿进程:其实就是主继承执行完了,子进程还没执行完,因为会变成僵尸进程,以及占用pid号,所以就会被init方法回收 僵尸进程:其实就是子进程运行完了之后,他不是真正的运行完,而是会保留一些信 阅读全文
posted @ 2019-09-12 20:46 cheerxiong 阅读(174) 评论(0) 推荐(0)
摘要: 基于UDP协议 的socket套接字编程 1.UDP套接字简单示例 1.1服务端 1.2客户端 UDP是无链接的,先启动那一端都不会报错 UDP协议是数据报协议.发空的时候也会自带报头,因此客户端输入空,服务器也能收到 2.UDP套接字无粘包问题 2.1服务端 2.2客户端 UDP协议一般不用于传输 阅读全文
posted @ 2019-09-09 18:34 cheerxiong 阅读(294) 评论(0) 推荐(0)
摘要: 网络架构及其演变过程 单机架构 就只有一个客户端,不需要和服务器交换数据 CS架构 客户端(Client) 服务端(Server) 客户端:用户安装软件 服务端:统一管理数据库的主机中的软件就叫做服务端,再后来服务端不只是管理数据,外加处理业务逻辑 CS架构要求 要求操作系统安装客户端;产商操作系统 阅读全文
posted @ 2019-09-05 18:54 cheerxiong 阅读(587) 评论(0) 推荐(0)
摘要: 单例模式 什么是单例模式 单例模式:基于某种方法实例化多次得到的实例就是同一个 为什么用单例模式 当实例化多次得到的对象中存放的属性都是一样的情况,应该将多个对象指向同一个内存, 即同一个实例 1.单例模式(类内部定义静态方法) 2.单例模式(装饰器) 3.单例模式(元类) 4.单例模式(模块) 模 阅读全文
posted @ 2019-09-04 20:08 cheerxiong 阅读(136) 评论(0) 推荐(0)
摘要: [TOC] 元类 1.什么是元类 在python中一切皆对象,那我们用class关键字定义的类本身也是一个对象,负责产生 该对象的类称之为元类,即元类可以简称为类的类. 元类(type) 实例化 我们所使用的的类(class 类名) 实例化 对象 2.为什么用元类 元类就是负责产生类的,所以我们学习 阅读全文
posted @ 2019-09-03 20:09 cheerxiong 阅读(227) 评论(0) 推荐(0)
摘要: [TOC] issubclass 和 isinstance issubclass 判断一个类是不是另一个类子类 isinstance 判断第一个是不是第二个的参数生成的对象 反射 1.用户输入一段字符串,执行该字符串对应的方法 hasattr():判断字符串在对象里面是否有,返回值是布尔类型 get 阅读全文
posted @ 2019-09-02 20:52 cheerxiong 阅读(226) 评论(0) 推荐(0)