首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    datax(7):JobContainer源码解读

    的大小 6、split()方法reader插件会根据channel的值进行拆分,但是有些reader插件可能不会参考channel的值,writer插件会完全根据reader的插件1:1进行返回 7、 TaskExecutor,通过taskExecutor.doStart()启动任务 三、主要方法 带do开头的方法,可以理解为具体实现类的执行 ---- 四、运行时序图 主入口为start方法 五、源码解读 * example: *

    * 前提条件: 切分后是1024个分表,假设用户要求总速率是1000M/s,每个channel的速率的3M/s, 每个taskGroup负责运行7个 /s / 3M/s = 333个,为平均分配,计算可知有308个每个channel有3个tasks,而有25个每个channel有4个tasks, * 需要的taskGroup数为:333 / 7 invoker = new HookInvoker(dir, configuration, comm.getCounter()); invoker.invokeAll(); } } 注: 对源码进行略微改动

    1.6K20编辑于 2022-08-29
  • 来自专栏学习计划

    JDK 7 ConcurrentHashMap源码解读

    源码 它有这些个属性: // 默认初始大小 static final int DEFAULT_INITIAL_CAPACITY = 16; // 默认加载因子 static final

    48910发布于 2021-01-29
  • 来自专栏用户9715713的专栏

    react hook 源码完全解读7

    期间也涌现了很多关于React Hooks 源码解析的文章。本文就以笔者自己的角度来写一篇属于自己的文章吧。希望可以深入浅出、图文并茂的帮助大家对React Hooks的实现原理进行学习与理解。 答案尽在源码之中我们先来了解useState以及useReducer的源码实现,并从中解答我们在使用Hooks时的种种疑惑。 其实这个方法就在源码 packages/react/src/ReactHook.js 中。 这个没有问题,源码也很清晰利用initialState来初始化状态,并且返回了状态和对应更新方法 return hook.memoizedState, dispatch。 到此为止,useState/useReducer/useEffect源码也阅读完毕了,相信有了这些基础,剩下的Hooks的源码阅读不会成问题,最后放上完整图示:图片

    1.2K20编辑于 2023-01-10
  • 来自专栏Android记忆

    Android源码解读-事件分发机制

    34B66A6E-F3C7-4D02-A508-14F271CD3445.png A6A6A7B1-1CC9-4820-9F87-D513CA85F93C.png 48C9C055-75B4-4B0B -9D82-8F8A699AA1C1.png 449E97DB-A71E-4E1E-8915-7E9A6BFFE07D.png D397C456-AD94-42DB-8123-74FB3CF44FAB.png

    58650编辑于 2022-01-04
  • 来自专栏Android记忆

    Android源码解读-Handler、Looper、MessageQueue

    二、源码解析 Looper源码解析 Android应用程序进程在启动的时候,会在线程中加载 /frameworks/base/core/java/android/app/ActivityThread.java next源码 Message next() { final long ptr = mPtr; ............... nativePollOnce(ptr, nextPollTimeoutMillis);【内部源码这里就先暂时不看了,有机会以后再看看】 当nextPollTimeoutMillis=-1时,表示没有消息 Looper大致就这些,下面看下Handler Handler源码解析 无限循环遍历MessageQueue过程就这些,上面讲了如何获取Message以及MessageQueue如何阻塞的。 dispatchMessage源码 public void dispatchMessage(@NonNull Message msg) { if (msg.callback !

    1.8K40编辑于 2023-03-29
  • 来自专栏Android记忆

    Android源码解读-App启动过程

    一.Launcher通过Binder进程间通信机制通知ActivityManagerService,它要启动一个Activity;

    53411编辑于 2022-01-13
  • 来自专栏857-Bigdata

    源码解读】|SparkContext源码解读

    (最短栈、最长栈) private[spark] case class CallSite(shortForm: String, longForm: String) 源码中通过「getCallSite( )」 方法配置返回CallSite 参数示意: 参数英文名 参数含义 lastSparkMethod 方法存入 firstUserFile 类名存入 firstUserLine 行号存入 源码如下: CallSite(shortForm, longForm) } 客户端结果: 举例:WordCount例子中,获得数据如下 最短栈:SparkContext at MyWorkCount.scala:7 <init>(SparkContext.scala:76) com.spark.MyWorkCount$.main(MyWorkCount.scala:7)

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

    源码解读】|SparkEnv源码解读

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

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

    源码解读】| LiveListenerBus源码解读

    异步事件列队主要由LinkedBlockingQueue[SparkListenerEvent] 构建,默认大小为10000

    1.9K20编辑于 2022-07-07
  • 来自专栏Android记忆

    Android源码解读-View绘制流程之setContentView

    1.直接看下setContentVIew源码 activity.java public void setContentView(@LayoutRes int layoutResID) { getWindow ().setContentView(layoutResID);// initWindowDecorActionBar(); } 1.在activity.java源码中我们可以看到 mWindow = new PhoneWindow(this, window, activityConfigCallback);所以我们直接看PhoneWindow源码中的setContentView。

    82341编辑于 2022-01-11
  • 来自专栏Android技术分享

    Android View源码解读:浅谈DecorView与ViewRootImpl

    前言 对于Android开发者来说,View无疑是开发中经常接触的,包括它的事件分发机制、测量、布局、绘制流程等,如果要自定义一个View,那么应该对以上流程有所了解、研究。 以下源码均取自Android API 21。 Activity中,会在onCreate()方法中写下这样一句: setContentView(R.layout.main); 显然,这是为activity设置一个我们定义好的main.xml布局,我们跟踪一下源码 尝试追踪一下源码,发现mWindow是Window类型的,但是它是一个抽象类,setContentView也是抽象方法,所以我们要找到Window类的实现类才行。 mContentRoot = (ViewGroup) in; ViewGroup contentParent = (ViewGroup)findViewById(ID_ANDROID_CONTENT

    1K20发布于 2019-08-22
  • 来自专栏上善若水

    下载及编译android7源码

    android 7源码的下载 step: 1、ubuntu 环境 2、打开终端(快捷键:ctrl + alt + t) 3、执行命令:wget https://mirrors.tuna.tsinghua.edu.cn 文件夹,执行命令:repo sync(中途出错,重复执行命令:repo sync) 参考 :https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 注:下载的这套源码可以正常编译 编译android7.0 更新 添加openjdk8的第三方源 sudo add-apt-repository ppa:openjdk-r/ppa 执行更新 apt-get update java 报错及修改 MODULE.TARGET.STATIC_LIBRARIES.libgtest already defined by external unset NDK_ROOT 参考链接 Android7.0 源码编译运行指南 自己动手编译android7

    1.6K30发布于 2018-09-28
  • 来自专栏拭心的安卓进阶之路

    Android 进阶14:源码解读 Android 消息机制( Message MessageQueue Handler Looper)

    处理消息 整体的流程有了,但是一直没有结合源码捋一捋。 这才去翻了翻源码,今天总结一下。 Android 消息机制主要涉及 4 个类: Message MessageQueue Handler Looper 我们依次结合源码分析一下。 Message.obtain() Message.obtain() 有 7 个重载方法,基本就是在获取一个 Message 对象的同时直接赋值: 我们选最复杂的一个看下源码: public static /os/message.html#62dadbbac34056e7ad4fad36d757d6ef 可以看到,这个方法会获取前面提到的 private static Message sPool; ,如果 这篇文章结合源码完整的看了一遍 Message MessageQueue Handler Looper,现在看着上面的图,可以自信地说我“熟悉 Android 消息机制”了哈哈。

    1.7K90发布于 2018-01-05
  • 来自专栏安卓随笔

    Android - NETD解读

    NETD 一、NETD解读 1.1、NETD的作用 Netd是Android系统中专门负责网络管理和控制的后台daemon程序,其功能主要分三大块: 设置防火墙(Firewall)、网络地址转换(NAT Android系统中DNS信息的缓存和管理。 Netd位于Framework层和Kernel层之间,它是Android系统中网络相关消息和命令转发及处理的中枢模块。 strcmp(argv[2],"enable")); return sendGenericOkFail(cli, res); } 二、iptable解读 2.1、iptable原理 –dport 80 -j DNAT –to 10.0.0.10 【将从eth1 进入,目的地址是202.106.1.1,使用tcp 协议,目的端口是80的数据包的目的地址转为10.0.0.1】 7.

    3.3K11编辑于 2022-12-13
  • 来自专栏子曰五溪

    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执行完毕后,再执行后面的代码。

    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(哨兵节点的设计)

    1.1K20发布于 2019-09-02
  • 来自专栏源码揭秘

    vuex源码解读

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

    71330编辑于 2022-02-14
  • 来自专栏Android记忆

    Volley源码解读

    ============= 新增一个请求 queue.add(request); 新增一个请求 queue.add(request2); 新增一个请求 queue.add(request3); 二、源码讲解 我们来看下源码 public static RequestQueue newRequestQueue(Context context) { return newRequestQueue(context 看下源码,我们发现在cancelAll、finish方法中使用。 我们来看下processRequest源码 @VisibleForTesting void processRequest(Request<? 2.策略模式 当Android SDK小于9时,基于HttpClient创建HttpStack,否则基于HttpURLConnection创建HttpStack,还可以自定义Stack 3.模板方法模式

    94470编辑于 2022-01-25
领券