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

    React源码分析6-hooks源码6

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

    80250编辑于 2023-01-10
  • 来自专栏java达人

    透过源码学习设计模式6—策略模式与Comparator

    sort()方法是常用的策略设计模式示例之一,它以Comparator作为参数,我们可以为Comparator接口提供不同的实现。

    1.3K20发布于 2019-09-24
  • 来自专栏爪哇缪斯

    源码解析: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 源码。 useCallback & useMemouseCallback 和 useMemo 也是一样,源码结构上十分相似,所以也放在一起来讲。 ,理解了 hooks 的设计思想和工作过程。 其他 hook 平时用的比较少,就不在这里展开讲了,但通过上面几个 hook 的源码讲解,其他 hook 看源码你应该也能看得懂。

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

    golang源码分析:cayley(6)

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

    29420编辑于 2023-08-09
  • 来自专栏golang算法架构leetcode技术php

    kratos源码分析系列(6

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

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

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

    10910编辑于 2026-03-18
  • golang源码分析:langchaingo(6

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

    11910编辑于 2026-03-18
  • 来自专栏互联网大杂烩

    6设计原则

    打算用一句话概括每一个设计原则 单一职责原则 一个类只负责一项职责,有且仅有一个原因引起类的变更。 里氏替换原则 所有引用基类的地方必须能透明地使用其子类对象。

    39230发布于 2018-08-22
  • 来自专栏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
  • 来自专栏竹蜻蜓技术专栏

    HashMap 源码设计思想

    分析 HashMap 的源码的文章在互联网上面已经数不胜数了,本文就不着重分析 HashMap 源码实现,而是从 HashMap 的设计思想角度入手。 同样的,还有这么一个字段,static final int UNTREEIFY_THRESHOLD = 6;,它意思是红黑树转链表的阈值。 为什么是 8 呢? 在考虑设计 8 这个值的时候,我们参考了泊松分布概率函数,由泊松分布中得出结论,链表各个长度的命中概率为: * 0: 0.60653066 * 1: 0.30326533 * 2: 0.07581633 * 3: 0.01263606 * 4: 0.00157952 * 5: 0.00015795 * 6: 0.00001316 * 7: 0.00000094 * 8: 关于为什么负载因子是 0.75,我们可以在源码注释找到一定的答案。 ?

    82630发布于 2020-07-08
  • 来自专栏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 源码系列文章的时候曾经讲过,现在我们再来回顾一下

    38410发布于 2020-04-07
领券