首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Android点滴分享

    AudioRecord源码解读(4)

    源码介绍 线程运行流程 先看下RecordThread的创建: AudioFlinger::RecordThread::RecordThread(const sp<AudioFlinger>& audioFlinger 20 ms each; this ensures we can sleep for 20ms in RecordThread size_t pipeFramesP2 = roundup(4

    2.2K10编辑于 2022-10-25
  • 来自专栏余林丰

    MyBatis源码解读4)——SqlSession(上)

    在SqlSession接口中包含了所有可能执行的sql语句在这里不一一列举,请参考org.apache.ibatis.session.SqlSession源码。 1 //org.apache.ibatis.session.defaults.DefaultSqlSession 2 …… 3 @Override 4 public <E> List<E> private <E> Object executeForMany(SqlSession sqlSession, Object[] args) { 3 List<E> result; 4 1 //org.apache.ibatis.binding.MapperMethod 2 public static class SqlCommand { 3 4 private final 37 38 public SqlCommandType getType() { 39 return type; 40 } 41 }   大致对MapperMethod的解读到此

    1K60发布于 2018-01-09
  • 来自专栏857-Bigdata

    源码解读】|SparkContext源码解读

    (最短栈、最长栈) private[spark] case class CallSite(shortForm: String, longForm: String) 源码中通过「getCallSite( )」 方法配置返回CallSite 参数示意: 参数英文名 参数含义 lastSparkMethod 方法存入 firstUserFile 类名存入 firstUserLine 行号存入 源码如下:

    2.3K20编辑于 2022-05-17
  • 来自专栏857-Bigdata

    源码解读】| LiveListenerBus源码解读

    . //4.

    1.9K20编辑于 2022-07-07
  • 来自专栏857-Bigdata

    源码解读】|SparkEnv源码解读

    metricsSystem, memoryManager, outputCommitCoordinator, conf) 总结 Spark Env 源码顺序大致就是上面的流程 ,更细致的后面的博文中会持续更新解读

    1.6K20编辑于 2022-05-17
  • 来自专栏全栈程序员必看

    httprunner3源码解读4)parser.py「建议收藏」

    源码结构目录 可以看到此模块定义了4个属性和12个函数,我们依次来讲解 属性源码分析 # 匹配http://或https:// absolute_http_url_regexp = re.compile \-/\s=,]*)\)\}") 函数源码分析 parse_string_value 作用:将字符串转换为数字 "123" => 123 "12.2" => 12.3 "abc" => "abc" "$ parse_function_params("a=1, b=2") {'args': [], 'kwargs': {'a': 1, 'b': 2}} >>> parse_function_params("1, 2, a=3, b=4" ) {'args': [1, 2], 'kwargs': {'a':3, 'b':4}} get_mapping_variable 作用:获取映射变量 get_mapping_function 作用 add_one": lambda x: x + 1} >>> parse_string(raw_string, variables_mapping, functions_mapping) "abc4def

    57122编辑于 2022-09-21
  • 来自专栏子曰五溪

    Flex 源码解读

    你能通过源码看见 Row 和 Column 都继承了 Flex ,布局具体的计算都在这个类中,我们可以通过源码 github.com/flutter/flut 了解一下 Flex 是如何计算布局的。 const <Widget>[], }) 基本上默认值的设计不管是 Row 还是 Column 都遵循了 Flex 的设计,唯一相比之下只有 this.direction 参数是多余出来的一个,通过源码的注释我们可以了解到它是用于设置轴的排列方向

    1.1K20发布于 2019-06-24
  • 来自专栏TomatoCool

    Fscan源码解读

    Hosts)) } if common.Scantype == "icmp" { common.LogWG.Wait() return } common.GC() CheckLive函数(源码解读在 其它情况则调用PortScan函数(源码解读在portscan.go中)扫描存活的端口。LogWG.Wait()会等待PortScan函数中的goroutine执行完毕后,再执行后面的代码。 else { //优先尝试监听本地icmp,批量探测 conn, err := icmp.ListenPacket("ip4:icmp", "0.0.0.0") if err = //尝试无监听icmp探测 fmt.Println("trying RunIcmp2") conn, err := net.DialTimeout("ip4:

    1.1K30编辑于 2023-09-17
  • 来自专栏java、Spring、技术分享

    AbstractQueuedSynchronizer源码解读

    AbstractQueuedSynchronizer关键属性 下面来看看acquire获取锁的部分源码: public abstract class AbstractQueuedSynchronizer 源码如下: abstract static class Sync extends AbstractQueuedSynchronizer { //非公平锁最终最调用到当前这个方法,传入的acquires 源码如下: //这个方法是不允许子类重写的 final boolean acquireQueued(final Node node, int arg) { boolean failed 下面再来看看释放锁的逻辑AbstractQueuedSynchronizer的relase源码如下: //释放锁需要调用release方法 public final boolean release

    70930发布于 2018-09-11
  • 来自专栏JMCui

    ConcurrentLinkedQueue 源码解读

    二、源码解读 现在我们有了 head 和 tail 节点,如果按照我们平常的思维,head 节点即头节点,tail 节点即尾节点。 想要读懂 ConcurrentLinkedQueue 的源码,最好先搞懂以下特质: 队列中任意时刻只有最后一个元素的 next 为 null head 和 tail 不会是 null(哨兵节点的设计) if (p.casNext(null, newNode)) { // 4. if (p ! q : p); return item; } // 4.

    1.1K20发布于 2019-09-02
  • 来自专栏Android记忆

    Volley源码解读

    2.调用stop方法关闭当前所有请求线程后,再重新开启1个缓存请求线程和4个网络请求线程。 看下源码,我们发现在cancelAll、finish方法中使用。 4.如果缓存内容有问题,清空当前缓存内容同时添加网络请求队列,结束。 4.如果缓存不需要更新,则数据回调给使用者,结束。 4.标记当前请求成功同时把数据回调给使用者。 从源码中我们可以得知,网络请求线程只有4个,缓存请求线程只有1个,如果请求大数据,那就导致线程在一定的时间内被占用,5个线程很容易被用完,再有请求时回导致堵塞,UI体验较差。

    94470编辑于 2022-01-25
  • 来自专栏源码揭秘

    vuex源码解读

    源码阅读 核心功能在store.js,根据注释阅读便于理解。 总结 最后我们回过来看文章开始提出的5个问题。 引用 Vuex框架原理与源码分析 -美团 Examples Counter Counter with Hot Reload TodoMVC Flux Chat Shopping Cart Running

    71330编辑于 2022-02-14
  • 来自专栏大数据-数据人生

    SparkContext源码解读

    TaskSceduler在具体创建的时候,是由不同发布模式比如standalone、yarn、mesos决定的,返回一个SchedulerBackend.

    99042发布于 2020-04-08
  • 来自专栏jeremy的技术点滴

    harbor源码解读

    对镜像资源进行基于角色的鉴权 连接Database,提供存取projects、users、roles、replication policies和images元数据的API接口 提供UI界面 从目前的代码来看主要有这4个部分 解读源码 主要代码位于$GOPATH/src/github.com/goharbor/harbor/src这个目录,这里将这几个目录逐个分析一下。 核心的入口代码里这里$GOPATH/src/github.com/goharbor/harbor/src/jobservice/runtime/bootstrap.go#LoadAndRun,这里大致解读一下这个方法的代码 源码目录大概就这些内容了,还是比较清晰的。

    3K10发布于 2019-03-13
  • 来自专栏一头猪的学习

    OpenFeign源码解读

    前言: 参考学习链接: 1.https://www.bilibili.com/video/BV11D4y1C73V/? spm_id_from=333.1007.top_right_bar_window_history.content.click 2.深入理解Feign之源码解析-腾讯云开发者社区-腾讯云 (tencent.com @ComponentScan + @Service/@Controller/@Repository/@Component 3.Import(XXX.class) 4.ImportSelector接口,该接口返回类名数组 metadata.isConcrete() || (metadata.isAbstract() && metadata.hasAnnotatedMethods(Lookup.class.getName())))); } } 源码解读 SynchronousMethodHandler.Factory -> SynchronousMethodHandler 总结: 设计:组件化思维 技术点:适配器模式,SpringBoot自动装配,父子容器 OpenFeign的源码实现过程如下

    1.2K80编辑于 2023-05-09
  • 来自专栏Java工程师成长之路

    springboot源码解读

    springboot源码从main函数开始 public static void main(String[] args) { ApplicationContext app = SpringApplication.run IllegalStateException(ex); } } 我把主要步骤的每一步都标明了注释,看起来这里很多都是springboot特有,但主要的实现还是对springMVC的继承,你去看springmvc的源码

    58120发布于 2019-09-10
  • 来自专栏黯羽轻扬

    Redux源码解读

    最核心的两个东西是createStore和applyMiddleware,地位相当于core和plugin 二.设计理念 核心思路与Flux相同: (state, action) => state 在源码 丢进去执行了2遍,省了一个action case,此外还省了初始环境的标识变量和额外的store.init方法 充分利用了自身的dispatch机制,相当聪明的做法 四.applyMiddleware 这一部分源码被 重构可能会考虑要不要做break change,是否支持边界case,够不够易读(很多人关注这几行代码,相关issue/pr至少有几十个)等等,Redux维护团队比较谨慎,这块的迷惑性被质疑了非常多次才决定要重构 五.源码分析

    67340发布于 2019-06-12
  • ConcurrentHashMap 源码解读

    今天,我就带领大家一起阅读源码,看看它的存储结构和实现原理是怎么样的。 注:本片文章所涉及的源码版本来自 JDK1.8 Java 8 几乎完全重写了 ConcurrentHashMap,代码量从原来 Java 7 中的 1000 多行,变成了现在的 6000 多行 ConcurrentHashMap ConcurrentHashMap(); 默认会创建大小为 16 的空集合 当我们调用构造方法并手动设置集合大小时 ConcurrentHashMap map = new ConcurrentHashMap(12); 源码如下 initialCapacity=12时, c=19 int n = c - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; MAXIMUM_CAPACITY : n + 1; } 4. put() 添加元素 /** * 将指定键映射到此表中的指定值。

    23110编辑于 2025-11-03
  • 来自专栏全栈程序员必看

    hmily源码解读

    上述txTransactionHandler是StarterHmilyTransactionHandler,handler方法主要逻辑,构建根事务,绑定参与者,关联当前线程放入ThreadLocal,持久化事务日志,创建事务上下文,关联当前线程放入ThreadLocal。

    40520编辑于 2022-08-31
  • 来自专栏大数据-数据人生

    TaskScheduler源码解读

    这里调用了taskScheduler接口,我们打开TaskScheduler trait,trait在scala里就是接口,在IDEA中查看实现的类,使用快捷键:ctrl+H,或者直接使用快捷键:ctrl + alt +B查看实现

    64731发布于 2020-05-04
领券