05 2020 档案

摘要:python weakref 1. 内存泄漏 前面已经熟悉了python内存回收机制:引用计数,分代回收。 但是,仍有一个问题:无法回收循环引用对象。 只有容器对象才会形成循环引用,比如list、class、deque、dict、set等都属于容器类型。 import gc class A(obje 阅读全文
posted @ 2020-05-26 09:15 木林森__𣛧 阅读(415) 评论(0) 推荐(0)
摘要:分布式锁 1. 分布式锁 集群环境下,变量A会同时存在于三台服务器内存中。 需要保证它们的一致性,也就是说同时只能有一个线程对它进行操作。 在单机情况下锁很好处理,但在集群环境中,多线程、多进程并且分布在不同机器上,这将使原单机情况下的并发控制锁策略失效,单纯的应用并不能提供分布式锁的能力。为了解决 阅读全文
posted @ 2020-05-18 20:39 木林森__𣛧 阅读(186) 评论(0) 推荐(0)
摘要:flask restful 1. restful restful:representational state transfer,简称REST,描述了一个架构样式的网络系统。 REST并没有一个明确的标准,而更像是一种设计的风格。 这里不再讨论rest是什么,只关心flask环境下的restful 阅读全文
posted @ 2020-05-18 20:38 木林森__𣛧 阅读(273) 评论(0) 推荐(0)
摘要:redis pieline 1. 简介 Redis是建立在TCP协议基础上的CS架构,客户端client对redis server采取请求响应的方式交互。 一般来说客户端从提交请求到得到服务器相应,需要传送两个tcp报文。 对于同一客户端的大量命令而言,网络开销可能成为主要的时间开销。 类似于mys 阅读全文
posted @ 2020-05-15 22:39 木林森__𣛧 阅读(174) 评论(0) 推荐(0)
摘要:asyncio future 1. Future Object class asyncio.Future( , loop=None) Future代表一段异步操作的最终结果。非线程安全。 它是awaitable对象。 1.1. 常用方法 1. result() 返回结果 正常返回结果有两个条件,do 阅读全文
posted @ 2020-05-13 21:28 木林森__𣛧 阅读(264) 评论(0) 推荐(0)
摘要:selectors 1. 简介 doc:python 3.7.7 docs html/library/selectors.html 它定义了一个抽象类BaseSelector,以及几个具体实现类。 在本文中, 文件对象指的是任何具有fileno()方法的对象或者文件描述符; DefaultSelec 阅读全文
posted @ 2020-05-13 20:06 木林森__𣛧 阅读(148) 评论(0) 推荐(0)
摘要:asyncio事件循环原理 1. 总体 1.1. 任务创建 任务创建使用create_task方法。 def create_task(self, coro): """Schedule a coroutine object. Return a task object. """ self._check_ 阅读全文
posted @ 2020-05-10 22:24 木林森__𣛧 阅读(807) 评论(0) 推荐(0)
摘要:flask 并发 1. 非并发 非并发时的情况: 注意需要在run中声明threaded=False 对,flask默认启用多线程;而flask_script默认不启用多线程。。。 @app.route("/async") def longtimetask(): time.sleep(20) ret 阅读全文
posted @ 2020-05-02 21:53 木林森__𣛧 阅读(2291) 评论(0) 推荐(0)
摘要:python lib concurrent.futures [toc] 1. 简介 concurrent是python官方包,目前其中只包含concurrent.futures这一个包。 Source code: Lib/concurrent/futures/thread.py and Lib/co 阅读全文
posted @ 2020-05-01 22:40 木林森__𣛧 阅读(256) 评论(0) 推荐(0)