摘要: 前段时间在做一个项目,项目本身没什么难度,只是数据存在一个数据接口服务商那儿,这就意味着,前端获取数据需要至少两次http请求,第一次是前端到后端的请求,第二次是后端到数据接口的请求。有时,后端接收到前端的一次请求后,可能需要对多个接口进行请求,按照传统串行执行请求的方法,用户体验肯定是非常糟糕了, 阅读全文
posted @ 2018-06-25 20:43 bubingy 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 多任务系统一般都需要解决一个问题:多个任务如何调度。抢占式调度就是一种很常见的任务调度机制。以单核模式下的进程调度为例,一个进程处于运行状态,其他的处于就绪队列,等到当前运行的进程放弃CPU的使用权,系统将CPU立刻分配给新到达的进程,由于任务的执行顺序是不确定的,看上去就像一堆任务在竞争CPU的使 阅读全文
posted @ 2018-05-31 17:03 bubingy 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 函数的调用满足“后进先出”的原则,也就是说,最后被调用的函数应该第一个返回,函数的递归调用就是一个经典的例子。显然,内存中以“后进先出”方式处理数据的栈段是最适合用于实现函数调用的载体,在编译型程序语言中,函数被调用后,函数的参数,返回地址,寄存器值等数据会被压入栈,待函数体执行完毕,将上述数据弹出 阅读全文
posted @ 2018-05-19 11:30 bubingy 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 生成器是python中一个很有趣的概念,不只是有趣,而且很实用。 我们经常需要生成数组,一般来说,数组占据内存的大小和数组的长度有直接关系。数组中的元素越多,长度越长,占据的空间也越大。下面的代码中,我们初始化3个列表,并分别存放10,100,1000个元素: 输出如下结果: 可以预见,当数组内的元 阅读全文
posted @ 2018-05-18 09:09 bubingy 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 这几天我在GitHub上读了GIL的实现和python主循环的源码,总算对python的GIL有了大概的理解,现在来分享一下心得。 GIL源码上有这样一段注释: The GIL is just a boolean variable (locked) whose access is protected 阅读全文
posted @ 2018-05-09 19:43 bubingy 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 线程这个概念早在多核CPU出现之前就提出来了,单核时代的多线程主要是为了让CPU尽量不处于空闲状态,使其计算能力始终能得到利用。但本质上讲,在任意时刻只有一个线程在执行。 尽管任意时刻只有一个线程在执行,但是依然有些问题需要解决,其中最重要的就是线程安全。这个问题的来源很简单,我之前说过,CPU对指 阅读全文
posted @ 2018-05-08 15:19 bubingy 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 2017年年底,我从老东家离职。离职后我和小伙伴创业,负责确定技术栈以及服务端的开发部署。在进行了综合考虑之后,我决定使用python作为我们的后端语言。虽然只有一年半的工作经验,还是个菜鸟,但是我也明白一个优秀的程序员不应该只满足功能的实现,更要对性能有不懈的追求,这里要提到的多线程就是一种提高性 阅读全文
posted @ 2018-05-07 17:14 bubingy 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 定义:设$(R,+, )$是个环,$S$是$R$的一个非空子集。如果$+$和$ $也是$S$的运算,且$(S,+, )$也是个环,则说$(S,+, )$是$(R,+, )$是的一个子环。在所指运算不混淆时,简称$S$是$R$的一个子环。 在介绍环的时候,提到的偶数环是有理数环的子环。 $(R,+, 阅读全文
posted @ 2018-04-08 19:24 bubingy 阅读(3490) 评论(0) 推荐(1) 编辑
摘要: 定义:设集合$R$上有两种二元运算,一个叫加法,记为$+$;一个叫乘法,记为$ $,且$(R,+)$是个交换群;乘法$ $在$R$上是结合的;对任意$a,b,c\in R$,都有$a (b+c)=a b+a c,(b+c) a=b a+c a$,则说$(R,+, )$是个结合环,简单地,说它是个环。 阅读全文
posted @ 2018-03-04 18:12 bubingy 阅读(2163) 评论(0) 推荐(0) 编辑
摘要: 经过若干层卷积和池化后,图片的维度会越来越小,数量会越来越多,最终进入全连接层并分类输出(传统的神经网络)。由于全连接层会有大量的连接权值,模型过拟合的可能性会增加。对此,研究者提出过稀疏连接和Dropout等方法,降低过拟合的可能性。 Dropout是一种简单且有效的防止过拟合的方法。它用于训练阶 阅读全文
posted @ 2018-02-27 14:29 bubingy 阅读(1132) 评论(0) 推荐(0) 编辑