分析一下do_fork()的源码的主要步骤 1.首次查找_pidmap位图,为新子进程分配新的pid 2.复制进程描述符,返回的是新的进程描述符的地址(struct task_struct *p) 3.初始化完成量,vfrok主要用excv,父进程的虚拟地址空间对其没有用处,所以实现方式为在子进程退 ...
分类:
其他好文 时间:
2018-01-28 20:03:12
阅读次数:
148
一个Python程序开发者, 也是C语言爱好者, 为了加强自己对Python语言实现的理解, 最近选择阅读下陈儒老师的书, 对Python3.5.1源码进行阅读, 再次记录下读书笔记. 一、Python的总体结构 Python总体分为三部分: 文件系统(File Groups), 解释器(Inter ...
分类:
编程语言 时间:
2018-01-18 14:12:55
阅读次数:
125
转载两篇不错的文章: 第一篇: 前言 HashMap是我们平时开发过程中用的比较多的集合,但它是非线程安全的,在涉及到多线程并发的情况,进行put操作有可能会引起死循环,导致CPU利用率接近100%。 [java] view plain copy final HashMap<String, Stri ...
分类:
其他好文 时间:
2018-01-14 16:48:50
阅读次数:
256
引言 对于Spark开发人员来说,了解stage的划分算法可以让你知道自己编写的spark application被划分为几个job,每个job被划分为几个stage,每个stage包括了你的哪些代码,只有知道了这些之后,碰到某个stage执行特别慢或者报错,你才能快速定位到对应的代码,对其进行性能 ...
分类:
其他好文 时间:
2018-01-07 00:53:21
阅读次数:
240
STL源码剖析 虽然上面这本书出版的时间比较早,但也是一本了解c++ STL比较好的书. 看完这本书后我自己写了一个小型的STL,还有部分其他的数据结构.改进 了部分算法和容器,获得了超过vs2015中自带的STL的性能. QMJSTL 其中包含部分数据结构的设计和某些算法的证明,可以让人更容易理解 ...
分类:
编程语言 时间:
2017-12-31 10:55:36
阅读次数:
190
由于近期准备深入研究一下Spark的核心源码,所以开了这一系列用来记录自己研究spark源码的过程! 想要读源码,那么第一步肯定导入spark源码啦(笔者使用的是IntelliJ IDEA),在网上找了一圈,尝试了好几种方法都没有成功,最终通过自己摸索出了一种非常简单的方式(只需要两步即可!) 环境 ...
分类:
其他好文 时间:
2017-12-30 20:00:20
阅读次数:
198
引言: 之前我们已经完成了在Linux下配置安装 skynet 的环境,并成功启动了 skynet 服务框架,为了从底层更好地理解整个框架的实现过程,我们有必要剖析一下源码,由于底层的源码都是用C语言写的,lua脚本基本是用来进行业务层开发,所以我们从C源码开始解读框架。打开下载包的 skynet- ...
分类:
Web程序 时间:
2017-11-27 20:08:21
阅读次数:
272
源码剖析Django REST framework的认证方式 在前面说过,请求到达REST framework的时候,会对request进行二次封装,在封装的过程中会对客户端发送过来的request封装进认证,选择,解析等功能 request方法封装完成之后,执行initial方法时,又会再次对客户 ...
分类:
其他好文 时间:
2017-11-26 11:13:56
阅读次数:
258
学习Django的时候知道,在Django请求的生命周期中,请求经过WSGI和中间件到达路由,不管是FBV还是CBV都会先执行View视图函数中的dispatch方法 是基于Django的API框架,REST framework采用的是CBV的请求模式. 所以在一个项目中,使用了REST frame ...
分类:
其他好文 时间:
2017-11-25 00:55:12
阅读次数:
254
1. Python内建对象 对象是数据以及基于这些数据的操作的集合,在Python中,对象就是为C中的结构体在堆上申请的一块内存。 在Python中,一个对象一旦被创建,它在内存中的大小就是不变的了,那些需要容纳可变长度数据的对象只能在对象内维护一个指向一块可变大小的内存区域的指针。 1.1.1 对 ...
分类:
编程语言 时间:
2017-11-23 10:56:53
阅读次数:
169