DonkeyCar源码阅读.1(简单安装+创建系统) DonkeyCar源码分析.2(官方硬件+相机处理) DonkeyCar源码阅读.3(操作记录+若干图像处理) donkeycar有一点做的很好
segments目录下的指定文件夹作为输入,读取里面将要爬取的url信息存入爬取队列,再根据用户输入的爬取的线程个数thread决定消费者的个数,线程安全地取出爬取队列里的url,然后在执行爬取页面,解析页面源码得出 4.关于segment文件夹下的crawl_parse,parse_data,parse_text三个文件夹是如何生成的,我们可以看看上面job的输出ParseOutputFormat类。
睡眠 __CFRunLoopServiceMachPort(::::) 睡眠后有4种情况可以唤醒runloop: 基于port的source事件 timer事件 runloop超时 外部手动触发唤醒 事实上
各位朋友,这次想跟大家分享一下Go调度器源码阅读相关的知识和经验,网络上已经有很多剖析源码的好文章,所以这篇文章不是又一篇源码剖析文章,注重的不是源码分析分享,而是带给大家一些学习经验,希望大家能更好的阅读和掌握 本文主要分2个部分: 解决如何阅读源码的问题。阅读源码本质是把脑海里已经有的调度设计,看看到底是不是这么实现的,是怎么实现的。 带给你一个探索Go调度器实现的办法。 阅读源码 阅读前提 阅读Go源码前,最好已经掌握Go调度器的设计和原理。如果你还无法回答以下问题: 为什么需要Go调度器? Go调度器与系统调度器有什么区别和关系/联系? GC等,阅读源码时,可以暂时先跳过,主抓调度的逻辑。 /all.bash 以后每次修改go源码后可以这样,4分钟左右可以编译完成 $ cd $GODIR/src $ time .
holder.incrementUseCount(); DruidPooledConnection poolalbeConnection = new DruidPooledConnection(holder); 4.
ngx_epoll_done, /* done the events */ } }; 这些事件处理函数都在 ngx_epoll_module.c 这个文件中,大家可以看一下源码
gin 源码阅读系列文章列表: gin 源码阅读(1) - gin 与 net/http 的关系 gin 源码阅读(2) - http请求是如何流入gin的? gin 源码阅读(3) - gin 路由的实现剖析 hi,大家好,我是 haohongfan。 通过 gin 的路由,已经把请求分配到具体的函数里面里面了,下面就要开始处理具体的业务逻辑了。 Bind 系列函数的源码剖析 使用 gin 解析 request 的参数,按照我的实践来看,使用 Bind 系列函数还是比较好一点,因为这样请求的参数会比较好归档、分类,也有助于后续的接口升级,而不是将接口的请求参数分散不同的
一、简介 使用Mybatis有一段时间了,但是一直没有专门去阅读MyBatis框架的源码,Mybatis是一个非常值得我们去阅读的框架,源码里面运用了很多常见的设计模式,如构建者模式、代理模式、模板方法模式等等 下面我们就以搭建一个源码阅读环境开始,一起来看看Mybatis的源码。 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。 下面我们搭建一个简单的Mybatis 源码Debug环境。 username` varchar(50) DEFAULT NULL COMMENT '用户名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 通过上面的示例,我们总结一下Mybatis使用的大体流程,如下图所示: 可以看到,主要分为了如上图的几个步骤,这几个步骤也是Mybatis的核心了,所以我们阅读源码也是从这几个部分切入,逐步逐步去了解里面的实现细节
redux源码解析 什么是redux Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 源码解析 注意: 如果没有使用过redux,建议先去看看redux文档 api方法 export { createStore, combineReducers, bindActionCreators
每个线程独有一个 Map,Map里的存储结构为 Entry <ThreadLocal,Object> 数组
SparkContext是spark的入口,通过它来连接集群、创建RDD、广播变量等等。
查看InheritableThreadLocal源码 重写了getMap和createMap方法。
ThreadLocal源码比较简单,整体了解起来比较容易。
koa源码阅读[0] Node.js也是写了两三年的时间了,刚开始学习Node的时候,hello world就是创建一个HttpServer,后来在工作中也是经历过Express、Koa1.x、Koa2 用的比较多的还是Koa版本,也是对它的洋葱模型比较感兴趣,所以最近抽出时间来阅读其源码,正好近期可能会对一个Express项目进行重构,将其重构为koa2.x版本的,所以,阅读其源码对于重构也是一种有效的帮助 image.png 小记 最近抽时间将Koa相关的源码翻看一波,看得挺激动的,想要将它们记录下来。 应该会拆分为几段来,不一篇全写了,上次写了个装饰器的,太长,看得自己都困了。 koa与koa-compose 热门中间件 koa-router与koa-views 杂七杂八的轮子 koa-bodyparser/multer/better-body/static 示例代码仓库地址 源码阅读仓库地址
ioredis源码阅读[1] 上次针对 redis 的源码阅读涉及普通的 client,这次针对 cluster 模式下的 client 源码进行分析。 具体的源码路径就是在 lib/cluster 目录下了。 127.0.0.1", }, { port: 6381, host: "127.0.0.1", }, ]) cluster.get('someKey').then() 从源码上来看 integer) 8191 2) 1) "127.0.0.1" 1) (integer) 7001 3) 1) "127.0.0.1" 1) (integer) 7005 4)
ConcurrentHashMap源码阅读1.ConcurrentHashMap1.71.存储结构Java7中ConcurrentHashMap由很多个Segment组合,而每一个Segment是一个类似于 thrownewNullPointerException();inthash=hash(key);//hash值无符号右移28位(初始化时获得),然后与segmentMask=15做与运算//其实也就是把高4位与 loadFactor);//创建新的数组HashEntry<K,V>[]newTable=(HashEntry<K,V>[])newHashEntry[newCapacity];//新的掩码,默认2扩容后是4, 3.put直接过一遍put源码。 4.getget流程比较简单,直接过一遍源码。
RUN mkdir ~/php71 && tar -xvf /tmp/php.tar.gz --strip-components 1 -C ~/php71 # 安装目录 /var/php71 # 源码目录 已挂载进容器 docker-compose exec centos bash php-fpm nginx # 查看 worker 进程号 ps aux | grep fpm gdb --pid=xxx 阅读工具 推荐使用Understand 尝试过CLion和Visual Studio 很多代码都不能进行跳转 需自行下载一个与Dockerfile中PHP版本相同的源码用于阅读 增加扩展(可选) 依赖 下载已经安装的 PHP按本的PHP源码 进入扩展源码目录比如curl cd ~/php71/ext/curl 执行phpize(编译PHP扩展的工具,主要是根据系统信息生成对应的configure文件) /var/ 大端存储 0x1A | 0x2B | 0x3C | 0x4D 即高位字节放在内存的低地址端 低位字节放在内存的高地址端 小端模式 0x4D | 0x3C | 0x2B | 0x1A 即低位字节放在内存的低地址端
自己对着源码敲一遍练习,写上注释。发现NIO编程难度好高啊。。 TimeClient: 1 package nio; 2 3 public class TimeClient { 4 public static void main(String args ).start(); 14 } 15 } TimeClientHandler: 1 package nio; 2 3 import java.io.IOException; 4 TimeServer: 1 package nio; 2 3 import java.io.IOException; 4 5 public class TimeServer { 6 ); 19 } 20 } MultiplexerTimeServer: 1 package nio; 2 3 import java.io.IOException; 4
reselect源码阅读 之前就听闻了reselect是一个用于react性能优化的库,并且源码只有100多行。 可谓短小精悍,今天来阅读一波膜拜大佬们的思想 import { createSelector } from 'reselect' const shopItemsSelector = state = 下面开始阅读探读部分 先说几个简单的工具函数吧 首先是默认的比较函数,代表比较方式,可以根据业务需求换的。默认是进行全等比较 /** * 默认的比较函数,只进行一层全等比较。
toc Koa源码阅读 Koa使用 Koa整体调用流程 Koa 中间件“洋葱模型” Koa源码阅读 Koa使用 Koa整体调用流程 Koa 中间件“洋葱模型” Koa源码阅读 Koa 在众多NodeJs 框架中,以短小精悍而著称,核心代码只有大约570行,非常适合源码阅读。 本文就核心阅读中间件的源码。 Koa使用 中间件可以理解为插件,对于Koa来说,就是很简单的use()API。 Koa源码阅读 Koa 在众多NodeJs框架中,以短小精悍而著称,核心代码只有大约570行,非常适合源码阅读。 实际上核心来说,Koa主要是两块 中间件系统 对请求结构封装为更为易用的ctx对象。 本文就核心阅读中间件的源码。 Koa使用 中间件可以理解为插件,对于Koa来说,就是很简单的use()API。