首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏小黑娃Henry

    RunLoop源码阅读RunLoop源码阅读

    系统内核在收发事件、消息时使用的消息传递函数。可以理解为多进程之间的一种通讯调用机制。

    1.6K20发布于 2021-08-09
  • 来自专栏初见Linux

    10-3 信号

    三、信号 kill 命令通常用来“ 杀死 ”(终止)进程,它可以用来终止运行不正常的程序 或 拒绝终止的程序。如下例: kill命令示例.png 我们首先在后台启动了 xlogo 程序。She

    83730发布于 2020-08-11
  • 来自专栏多线程

    MyBatis源码阅读(一) --- 源码阅读环境搭建

    一、简介 使用Mybatis有一段时间了,但是一直没有专门去阅读MyBatis框架的源码,Mybatis是一个非常值得我们去阅读的框架,源码里面运用了很多常见的设计模式,如构建者模式、代理模式、模板方法模式等等 下面我们就以搭建一个源码阅读环境开始,一起来看看Mybatis的源码。 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。 官网地址:mybatis.org/mybatis-3/z… 如果对Mybatis还不熟悉的小伙伴,建议还是先去官网熟悉Mybatis是如何使用的,熟悉以后我们再来看其源码实现。 下面我们搭建一个简单的Mybatis 源码Debug环境。 通过上面的示例,我们总结一下Mybatis使用的大体流程,如下图所示: 可以看到,主要分为了如上图的几个步骤,这几个步骤也是Mybatis的核心了,所以我们阅读源码也是从这几个部分切入,逐步逐步去了解里面的实现细节

    58710编辑于 2023-12-22
  • 来自专栏个人分享

    SparkContext源码阅读

    SparkContext是spark的入口,通过它来连接集群、创建RDD、广播变量等等。

    1.2K20发布于 2018-09-06
  • 来自专栏樯橹代码

    阅读redux源码

    redux源码解析 什么是redux Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 源码解析 注意: 如果没有使用过redux,建议先去看看redux文档 api方法 export { createStore, combineReducers, bindActionCreators

    1.2K10发布于 2019-09-02
  • 来自专栏服务端技术杂谈

    InheritableThreadLocal源码阅读

    查看InheritableThreadLocal源码 重写了getMap和createMap方法。

    88040发布于 2018-04-17
  • 来自专栏服务端技术杂谈

    ThreadLocal源码阅读

    ThreadLocal源码比较简单,整体了解起来比较容易。

    98140发布于 2018-04-17
  • 来自专栏全沾开发(huā)

    koa源码阅读

    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 示例代码仓库地址 源码阅读仓库地址

    99810发布于 2019-12-09
  • 来自专栏海涛技术日常

    ThreadLocal源码阅读

    每个线程独有一个 Map,Map里的存储结构为 Entry <ThreadLocal,Object> 数组

    70710发布于 2019-12-16
  • 来自专栏全沾开发(huā)

    ioredis源码阅读

    ioredis源码阅读[1] 上次针对 redis 的源码阅读涉及普通的 client,这次针对 cluster 模式下的 client 源码进行分析。 具体的源码路径就是在 lib/cluster 目录下了。 127.0.0.1", }, { port: 6381, host: "127.0.0.1", }, ]) cluster.get('someKey').then() 从源码上来看

    1K10发布于 2021-04-08
  • ConcurrentHashMap 源码阅读

    ConcurrentHashMap源码阅读1.ConcurrentHashMap1.71.存储结构Java7中ConcurrentHashMap由很多个Segment组合,而每一个Segment是一个类似于 3.put接着上面的初始化参数继续查看put方法源码。展开代码语言:JavaAI代码解释/***Mapsthespecifiedkeytothespecifiedvalueinthistable. ss,u))==null){//使用CAS赋值,只会成功一次if(UNSAFE.compareAndSwapObject(ss,u,null,seg=s))break;}}}returnseg;}上面的源码分析了 3.put直接过一遍put源码。 4.getget流程比较简单,直接过一遍源码

    10810编辑于 2026-02-20
  • 来自专栏seth-shi的专栏

    PHP 源码阅读

    openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel libicu-devel wget # 下载指定版本源码 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/

    6.6K10编辑于 2023-12-18
  • 来自专栏软件开发-青出于蓝

    Mybatis源码阅读

        List-1中,根据类型来调用不同的处理,我们以insert为例子分析,调用的就是如下的List-2,首先将传入Mapper方法上的参数转换为SQL参数,之后调用SqlSession的insert方法,注意这个SqlSession是SqlSessionTemplate,我们来看SqlSessionTemplate的insert方法,如List-3:

    52820发布于 2019-05-19
  • 来自专栏刘晓杰

    源码阅读--Retrofit

    public void onFailure(Call<ResponseBody> call, Throwable t) { } }); 2.源码解析

    58320发布于 2019-02-21
  • 来自专栏山山仙人的专栏

    requests源码阅读

    我们一起阅读一下其源码,学习它是如何实现的。 整篇文档分下面几个部分: 项目结构 api 模块 sessions 模块 models 模块 adapters 模块 小技巧 1、项目结构 本次阅读代码版本是 2.24.0, 从github上clone 命令查看历史信息,找到tag=2.24.0的标签,切换版本: git checkout 0797c61fd541f92f66e409dbf9515ca287af28d2 可以使用下面的方法简单判断一下代码量,这样阅读完成后会更有成就感 , True) return request('get', url, params=params, **kwargs) 这种get-request的api的封装方式,和我们之前读过的redis源码类似

    1.3K20发布于 2021-01-22
  • goc源码阅读

    golang源码的工具链中提供了可选参数coverprofile参数,可以生成覆盖率文件,方便我们快速查看,哪行代码被覆盖了,哪行代码还需要验证,但是只支持单测环境。 于是https://github.com/qiniu/goc就诞生了,它借鉴了golang官方覆盖率统计方案和部分代码,核心原理是在编译打包的时候创建一个临时目录,将源码插桩后放到临时目录,然后编译成带覆盖率的包 下面开始研究下源码: 入口文件是goc.go,它只是注册了各种命令行参数,使用了spf13包,具体源码参考往期博客,这里不再详述。 string Singleton bool } 核心代码分为下面三步:1,根据参数列出需要处理的包 2,调用AddCounters进行源码打桩 ,将计数代码的赋值逻辑按照源码的作用域进行打桩 3,将打桩依赖的变量声明放到一个单独的包里,让各个桩代码引用。

    13710编辑于 2026-03-18
  • 来自专栏全沾开发(huā)

    ioredis源码阅读

    ioredis源码阅读[0] 最近因为工作需要,要去搞一个 Node.js 端的 Redis Client 组件出来,暂时选择通过 ioredis 来作为 fork 对象。 因为之前有遇到过 Redis 在使用 twemproxy 时会一直出现无法连接服务器的问题,详情见 issues:https://github.com/luin/ioredis/issues/573 所以会修改源码修改这一问题 ,不过在修改完成之后跑单元测试发现,事情没有那么简单,并不只是 info -> ping 这样,所以只好去熟悉源码,然后针对性地调整一下逻辑。 ioredis 项目结构 从项目中看,源码都在 lib 文件夹下,是一个纯粹的 TS 项目。

    78820发布于 2020-12-18
  • 来自专栏陈猿解码

    源码阅读之我见

    【概述】 ---- 在很多技术交流群里,都看到过同样一个问题:如何阅读源码? 很多情况下,我们对一些开源的组件会用、或者通过官方文档、实际部署测试对其原理有一定程度的理解就可以了,不一定需要进行源码阅读。因为阅读源码确实是一件非常耗精力的事情。 ,这里就来谈谈自己阅读源码的一些方式方法和技巧。 本文主要提到的方法如下图所示: 【按业务流程】 ---- 一种阅读源码的方式是完全按业务流程来,比如阅读消息队列服务(rocketmq、kafka、rabbitmq等)的源码,一个通用的流程是服务端如何接收生产者发送的消息并持久化存储的 对主流程的相关源码有一定了解后,可以进行一些扩展和加入一些异常因素继续阅读相关的源码

    71430编辑于 2023-02-28
  • 来自专栏个人分享

    NIO源码阅读

      自己对着源码敲一遍练习,写上注释。发现NIO编程难度好高啊。。

    71740发布于 2018-09-06
  • 来自专栏flytam之深入前端技术栈

    reselect源码阅读

    reselect源码阅读 之前就听闻了reselect是一个用于react性能优化的库,并且源码只有100多行。 可谓短小精悍,今天来阅读一波膜拜大佬们的思想 import { createSelector } from 'reselect' const shopItemsSelector = state = 下面开始阅读探读部分 先说几个简单的工具函数吧 首先是默认的比较函数,代表比较方式,可以根据业务需求换的。默认是进行全等比较 /** * 默认的比较函数,只进行一层全等比较。

    69320发布于 2020-01-14
领券