摘要: 在理解有向图和强连通分量前必须理解与其对应的两个概念,连通图(无向图)和连通分量。 连通图的定义是:如果一个图中的任何一个节点可以到达其他节点,那么它就是连通的。 例如以下图形: 这是最简单的一个连通图,即使它并不闭合。由于节点间的路径是没有方向的,符合从任意一个节点出发,都可以到达其他剩余的节点这 阅读全文
posted @ 2018-12-20 20:06 持之以恒18 阅读(3856) 评论(1) 推荐(0) 编辑
摘要: 在高并发的场景下,python提供了一个多线程的模块threading,但似乎这个模块并不近人如意,原因在于cpython本身的全局解析锁(GIL)问题,在一段时间片内实际上的执行是单线程的。同时还存在着资源争夺的问题。python3.4之后引入了基于生成器对象的协程概念。也就是asyncio模块。 阅读全文
posted @ 2018-12-19 11:34 持之以恒18 阅读(987) 评论(0) 推荐(0) 编辑
摘要: Adroid布局 有人形象地比喻,Android开发中的布局就相当于一栋建筑的外观架构。布局用得好,这栋建筑的外观才美观高大上。 Android布局管理器 Android布局管理器本身是一个界面控件,所有的布局管理器都是ViewGroup类的子类,都是可以当做容器类来使用的。因此一个布局管理器中可以 阅读全文
posted @ 2018-12-14 01:03 持之以恒18 阅读(721) 评论(0) 推荐(1) 编辑
摘要: 需求分析: 当一个庞大的系统中有很多小模块,在分配路由的时候怎么处理呢?全部都堆到一个py程序中,调用@app.route? 显然这是很不明智的,因为当有几十个模块需要写路由的时候,这样程序员写着写着自己就晕掉了。同时也违背了面向对象设计原则中的控制反转原则。模块与模块之间应该不要太紧密的依赖,高级 阅读全文
posted @ 2018-12-12 01:05 持之以恒18 阅读(2753) 评论(0) 推荐(1) 编辑
摘要: python的内建模块collections有几个关键的数据结构,平常在使用的时候,开发者可以直接调用,不需要自己重复制造轮子,这样可以提高开发效率。 1. deque双端队列 平常我们使用的python内置list类的append,extend,pop方法都是从list的尾部执行的(pop()默认 阅读全文
posted @ 2018-12-09 22:51 持之以恒18 阅读(323) 评论(0) 推荐(1) 编辑
摘要: Queue队列在几乎每种编程语言都会有,python的列表隐藏的一个特点就是一个后进先出(LIFO)队列。而本文所讨论的Queue是python标准库queue中的一个类。它的原理与列表相似,但是先进先出(FIFO)队列。而内部实现更为完善,有很好的数据保护机制和较高的稳定性。 Queue队列在编程 阅读全文
posted @ 2018-11-26 09:37 持之以恒18 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 前面两篇文章,写了python线程同步原语的基本应用。下面这篇文章主要是通过阅读源码来了解这几个类的内部原理和是怎么协同一起工作来实现python多线程的。 相关文章链接:python同步原语--线程锁 python--线程同步原语 一、关于Condition类 Condition的用法: 用来记录 阅读全文
posted @ 2018-11-21 08:39 持之以恒18 阅读(403) 评论(0) 推荐(0) 编辑
摘要: Threading模块是python3里面的多线程模块,模块内集成了许多的类,其中包括Thread,Condition,Event,Lock,Rlock,Semaphore,Timer等等。下面这篇文章主要通过案例来说明其中的Event和Segmaphore(Boundedsegmaphore)的使 阅读全文
posted @ 2018-11-20 00:56 持之以恒18 阅读(1020) 评论(0) 推荐(0) 编辑
摘要: 在讲述fileinput模块之前,首先说一下python内置的文件API—open()函数以及与其相关的函数。 我这里主要讲讲其中四个比较重要和常用的方法,更多的方法,可以参考:菜鸟教程http://www.runoob.com/python/file-methods.html (1)file = 阅读全文
posted @ 2018-11-15 01:03 持之以恒18 阅读(15497) 评论(0) 推荐(0) 编辑
摘要: 在定义一个类的时候,有时我们需要获取一个类的属性值,而这个属性值需要经过类中的其他属性运算来获得的。那么很容易,只要我们在类中定义一个方法,并且通过调用方法可以获取到那个需要运算的属性值。那么,问题来了,当有一天需求变了,你需要反向操作你之前实现的类,你需要通过传入那个需要运算得来的值来获取参与运算 阅读全文
posted @ 2018-11-12 20:36 持之以恒18 阅读(339) 评论(0) 推荐(0) 编辑