Python高级-异步编程

Python 提供协程语义,通过 async def 声明协程,通过 await 关键字调用协程。

协程是异步io中的基本执行单元,基于生成器原理实现(yield, yield from),在执行过程中能将自身挂起出让CPU执行权,在未来又可以被唤醒。

事件循环(event-loop)则用来驱动多个协程并发执行,内部存在一个任务队列,用于存储待执行的协程列表。

asyncio 提供了事件循环的实现,是一个常用的异步编程框架,另外 curio 也提供了事件循环的实现。

future 概念表示一个异步任务的提交结果(注意是提交结果,不是执行结果),在任务被提交到事件循环后(放入任务队列中),则会返回一个 future 对象(或者是子类 task)。通过 future 对象可以获取异步任务的执行情况,以及执行结果。

另外 future 还提供了 add_done_callback 接口可以设置回调方法,在异步任务完成之后会执行所有的回调方法,在事件循环中通过这个方式将被挂起的协程重新唤醒。

阅读全文 »

算法与数据结构-复杂度分析

广义上数据结构指的是一组数据的存储形式,算法则是操作这组数据的行为,算法构建与于数据结构之上,具体来讲,不同的算法需要依赖特定的数据结构才能发挥作用,例如二分查找算法需要依赖数组的随机访问特性。

阅读全文 »

关于选择的权利

今天乘坐一大早的高铁,从上海开往厦门,准备在厦门和父母待上一段时间,顺便带他们去做个全身体检。

小孩可谓是高铁上最令人“闻风丧胆”的物种,特别是对于我这种前一晚睡眠不足,想在车厢上简单补觉的人简直是灾难,车厢嘈杂得像集市,即便我戴着降噪耳机也难逃被噪音“骚扰”的厄运,就在我小憩的过程中突然一个小孩尖叫一声把我吓醒,期间小孩以非固定的频率时不时发出一声刺耳的怪叫,令我非常恼火。

阅读全文 »

关于山东济南之旅

前两天上海遭遇台风强降雨,想找个地方避雨顺带旅游放松一下;地图上查找了一圈后发现山东济南显示没有降雨,一拍即合就去济南吧。

阅读全文 »

Python高级-并发模型

在 Python 中原生支持三种执行单元:进程,线程,协程,依赖这三种执行单元实现的并发模型底层原理各不相同,所试用的场景也不尽相同。

阅读全文 »

Python高级-经典协程

在Python3.5还未发布前,协程指代的就是基于生成器实现的“经典协程”,虽然如此但协程和生成器还是有很大区别:

  • 生成器生产供迭代的数据
  • 协程功能更强大,不仅在运行过程中能生产迭代数据,还能接收外部传值并最终返回结果
阅读全文 »

Python高级-生成器

生成器可以认为是一个特殊的迭代器,用途也是对特定数据序列进行逐个遍历,只不过生成器是 Python 在平台层面实现了通用的迭代器逻辑,在编码时开发者只需要通过 yield 关键字即可快速构建迭代器,符合 Python 简洁的风格。

阅读全文 »

Python高级-迭代器

Python中容器类的对象都是可迭代对象,外部则通过可迭代对象提供的迭代器达到逐个遍历元素的目的。

迭代器都实现了collections.abc.Iterator 基类中的两个重要方法,其中 iter() 方法用于返回迭代器本身,next() 方法用于实现逐个遍历元素的行为。

阅读全文 »

尼采与身体-负罪感

尼采思考人身上负罪感的来源,由结果倒推探索出了一条因果链。

契约关系的出现最终导致了负罪感的产生,通过经济交易活动产生的债权人和债务人的关系称之为契约关系。如果违背了契约上的物质经济承诺就是负债,而负罪感就是来源于负债感。

阅读全文 »

关于“逃避自由”理论

随着社会的发展,个体获得了更多的自由(思想,时间,空间),但这种自由并非总是带来幸福和快乐,相反它带来了责任,孤独,不确定性,使得人们感到焦虑和无所适从,在这种情况下,人们可能会想方设法地“逃避自由”。

阅读全文 »

关于浪漫爱情中的可见性

浪漫爱情的一个特征是双方具备可见性,可见性代表一方能被另一方看见,理解。“看见”的对象不仅包含外在的表象,更重要的是内心被欣赏,探索,看见的过程。

阅读全文 »

关于五一千岛湖骑行

错峰出行真的很爽,明显感觉4月30号晚上是个分界点,在那之后千岛湖的人流量肉眼可见增加了不少,庆幸我们提前两天到达了千岛湖。

计划在5月1号完成环岛骑行,前一天在租车行拿到了租赁的公路自行车,并和女朋友试骑了20公里作为热身。内心激动和忐忑的因素叠加,出发前的一晚我失眠了...

阅读全文 »

关于多巴胺驱动的奖赏系统

多巴胺被称作快乐因子,但它本身并不直接产生快乐,本质是驱动人们产生对未来的渴望和期待。整个反应链路是由认知系统+奖赏系统的共同协作完成的,而许多成瘾行为就和这个反应链路相关。

我试图尽量完整地阐述这套系统的工作机制,目的是了解成瘾行为背后的原理并试图改善成瘾行为。

阅读全文 »

关于收益递减效应

最近在阅读《轻松主义》这本书,其中提到收益递减效应,它强调在定义目标时需要找到产出低于投入的那个点,一旦越过了那个点,更多的努力并不会带来更好的结果,此时便需要停止努力。

阅读全文 »

关于连锁反应

前两天下水管道堵了,甚至已经出现了管道间的连锁反应,直观的表现是厨房下水的时候,会引发卫生间的管道口出水,地上全是饭粒菜渣。

阅读全文 »