首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏进阶高级前端工程师

    React源码分析6-hooks源码6

    本文将讲解 hooks 的执行过程以及常用的 hooks 的源码。 总结所以我们总结一下 renderWithHooks 这个函数,它所做的事情如下: 图片hooks 源码前面 hooks 的执行入口我们都找到了,现在我们看一下常用的一些 hooks 源码。 updateReducer 的源码如下:function updateReducer<S, I, A>( reducer: (S, A) => S, initialArg: I, init? useCallback & useMemouseCallback 和 useMemo 也是一样,源码结构上十分相似,所以也放在一起来讲。 其他 hook 平时用的比较少,就不在这里展开讲了,但通过上面几个 hook 的源码讲解,其他 hook 看源码你应该也能看得懂。

    80250编辑于 2023-01-10
  • 来自专栏爪哇缪斯

    源码解析:ThreadPoolExecutor(6

    4.4> addWorkder的Part2解析 我们先看一下Part2的源码和注释: 在Part2的逻辑中,我们就真正的开始了线程池的操作了。这部分才是真正的“高潮”部分。我们来往下看。 t.start(),由于Worker是Runnable,所以,调用的其实就是Worker的run方法,而Worker的run方法里,调用了非常重要的那个方法——runWorker(this); ---- 五、源码解析 下面为方法的源码和注释: 【解释】 从runWorker的代码逻辑中,我们能够看出来,它的主要处理逻辑就是执行外部指定的firstTask或者从阻塞队列中获得待执行的任务,然后调用run方法进行执行。 那么,怎么在源码中没有发现在哪呢?其实,他们都在获取队列中的任务getTask()方法中呢。我们下面将会对这个方法进行解析。 ---- 后面的内容,参见:源码解析:ThreadPoolExecutor(7)

    14110编辑于 2023-05-09
  • 来自专栏浪浪山下那个村

    【Redis源码】Redis 6 ACL源码详解

    简介 本文主要是讲解Redis 6的ACL的实现原理。基本使用详见:Redis 6.0新特性——ACLs,以及Redis启动过程分析。 . */ } ACLInitDefaultUser函数主要是初始化默认用户,在Redis 6当中默认用户的权限就相当于操作系统的管理员一样,拥有很大的权限,要限制远程使用默认用户连接。

    80730编辑于 2022-08-26
  • 来自专栏Java架构师必看

    spring源码分析6

    spring源码分析6 强烈推介IDEA2020.2破解激活,IntelliJ

    31020发布于 2021-04-13
  • 来自专栏进阶高级前端工程师

    React源码分析6-hooks源码

    本文将讲解 hooks 的执行过程以及常用的 hooks 的源码。 总结所以我们总结一下 renderWithHooks 这个函数,它所做的事情如下: 图片hooks 源码前面 hooks 的执行入口我们都找到了,现在我们看一下常用的一些 hooks 源码。 updateReducer 的源码如下:function updateReducer<S, I, A>( reducer: (S, A) => S, initialArg: I, init? useCallback & useMemouseCallback 和 useMemo 也是一样,源码结构上十分相似,所以也放在一起来讲。 其他 hook 平时用的比较少,就不在这里展开讲了,但通过上面几个 hook 的源码讲解,其他 hook 看源码你应该也能看得懂。

    74630编辑于 2022-11-30
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:cayley(6)

    接着分析memstore中索引的具体实现,它的B+树不是自己实现的,而是引用了一个第三方包,首先我们看下gen.go,它里面其实是运行来Makefile命令

    29420编辑于 2023-08-09
  • golang源码分析 :gopls(6

    初始化完StreamServer后我们看看它是如何基于标准输入输出提供服务的。首先调用了golang.org/x/tools/internal/fakenet/conn.go

    10910编辑于 2026-03-18
  • 来自专栏golang算法架构leetcode技术php

    kratos源码分析系列(6

    直接获取当前节点:selector/node/direct/direct.go

    83510编辑于 2023-09-06
  • golang源码分析:langchaingo(6

    前面介绍langchaingo都是简单应用没有聊到它的核心处理流程,链式处理,这里还是结合例子详细分析下它的源码: // 将输入翻译为特定语言 chain1 := chains.NewLLMChain 这里还是依次介绍下源码

    11710编辑于 2026-03-18
  • 来自专栏Postgresql源码分析

    Postgresql源码6)Xlog组装

    (继续Postgresql技术内幕学习) 前面几节已经把XLOG所需的数据注册到内存中了,下面开始组装XLOG。 XLogRecordAssemble完成日志组装,处理页面数据Block部分,把registered_buffers中的数据进行二次加工。 /* * Assemble a WAL record from the registered data and buffers into an * XLogRecData chain, ready for insertion with XLogInser

    61920编辑于 2022-05-12
  • 来自专栏纸上得来终觉浅

    libuv源码阅读(6)--helloworld

    先看用例源码: #include <stdio.h> #include <stdlib.h> #include <uv.h> int main() { uv_loop_t *loop = malloc

    1K20发布于 2021-03-12
  • 来自专栏软件设计

    6.S0816.828: xv6源码分析--networking

    xv6使用的是以太网PCI控制器,支持DMA。DMA可以将设备和CPU解耦,并且DMA队列能够支持突发流量,CPU设置内存地址后设备直接将数据写入到该地址内,不经过CPU。 2 Ethernet#define ETHADDR_LEN 6// an Ethernet packet header (start of the packet).struct eth { uint8 主要方式是TCP、UDP,xv6目前支持UDP。 (m, sip, dport, sport); return;fail: mbuffree(m);}图片源端口是0x07d0,目的端口是0x6403,长度是0x001b,checksum是0,xv6的 0x12, 0x34, 0x56 };static uint8 broadcast_mac[ETHADDR_LEN] = { 0xFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF };二、源码分析

    1.3K00编辑于 2022-11-26
  • 来自专栏charlieroro

    redis 6源码解析之 事件

    redis的事件分为:文件事件和时间事件。文件事件是基于I/O的事务处理,时间事件则是基于时间点的事务处理。redis事件支持的多路复用包含四个实现:ae_epoll.c,ae_evport.c,ae_kqueue.c,ae_select.c

    40930发布于 2020-04-24
  • 来自专栏charlieroro

    redis 6源码解析之 object

    源码解析参见:object.c

    50620发布于 2020-04-30
  • 来自专栏charlieroro

    redis 6源码解析之 sds

    redis使用sds(simple dynamic string)实现了字符串的存储。sds实际上就是TLV格式的数据结构。其数据结构主要分为如下5种,主要分为首部和数据部分,首部给出了type和len信息,数据部分用于存储字符串数据。不同的首部可以表示不同长度的字符串数据,如SDS_TYPE_8最大可以表示(28 -1)大小的字符串数据。划分为不同类型的sds首部是为了减少内存浪费。

    41510发布于 2020-04-24
  • 来自专栏charlieroro

    redis 6源码解析之 sds

    redis使用sds(simple dynamic string)实现了字符串的存储。sds实际上就是TLV格式的数据结构。其数据结构主要分为如下5种,主要分为首部和数据部分,首部给出了type和len信息,数据部分用于存储字符串数据。不同的首部可以表示不同长度的字符串数据,如SDS_TYPE_8最大可以表示(2^8 -1)大小的字符串数据。划分为不同类型的sds首部是为了减少内存浪费。

    50500发布于 2020-04-16
  • 来自专栏狗哥的 Java 世界

    Java 并发(6)Semaphore 源码分析

    可以看到 acquire 方法里面直接就是调用 sync.acquireSharedInterruptibly (1),这个方法是 AQS 里面的方法,我们在讲 AQS 源码系列文章的时候曾经讲过,现在我们再来回顾一下

    38310发布于 2020-04-07
  • 来自专栏charlieroro

    redis 6源码解析之 ziplist

    举例如下: * |00pppppp| - 1 byte * 字符串的长度小于或等于63字节(6 bits). * "pppppp" 表示6bit长度的无符号整数. ssssssss|tttttttt| - 5 bytes * 字符串的长度大于或等于16384字节,只使用第1个字节之后的4个字节表示长度,最大为32^2-1,第一个 * 字节的低6位没有使用 [0f 00 00 00] [0c 00 00 00] [02 00] [00 f3] [02 f6] [ff] | | | | f6"的编码与前一个相同,去除前4个bit,并减去1,得到entry的值为5;最后的"ff"表示ziplist的结束(zlend)。 [02] [0b] [48 65 6c 6c 6f 20 57 6f 72 6c 64] 源码解析参见:ziplist.c

    54730发布于 2020-05-08
  • 来自专栏charlieroro

    redis 6源码解析之 dict

    redis源码的dict.c主要实现了基于hash表的操作,如增删改查,对哈希表大小的扩容和缩容,以及对哈希表的rehash和增量rehash等。 在源码的dictScan函数中,非常巧妙精美地实现了对哈希表的迭代查找,非常建议去看一下。 image.png 源码地址:dict.cdict.h

    40500发布于 2020-04-23
  • 来自专栏charlieroro

    redis 6源码解析之 dict

    edis源码的dict.c主要实现了基于hash表的操作,如增删改查,对哈希表大小的扩容和缩容,以及对哈希表的rehash和增量rehash等。 在源码的dictScan函数中,非常巧妙精美地实现了对哈希表的迭代查找,非常建议去看一下。 ? 源码解析地址:dict.c dict.h

    45320发布于 2020-04-30
领券