- 文章参考:小刘源码 ConcurrentHashMap源码解析_01 成员属性、内部类、构造方法分析 1、简介 ConcurrentHashMap是HashMap的线程安全版本,内部也是使用(数组 + 链表 + 红黑树)的结构来存储元素。相比于同样线程安全的HashTable来说,效率等各方面都有极大地提高。在学习ConcurrentHashMap源码之... 文章参考:小刘源码 ConcurrentHashMap源码解析_01 成员属性、内部类、构造方法分析 1、简介 ConcurrentHashMap是HashMap的线程安全版本,内部也是使用(数组 + 链表 + 红黑树)的结构来存储元素。相比于同样线程安全的HashTable来说,效率等各方面都有极大地提高。在学习ConcurrentHashMap源码之...
- 1、ThreadLocal简介 ThreadLocal是一个全局对象,ThreadLocal是线程范围内变量共享的解决方案;ThreadLocal可以看作是一个map集合,key就是当前线程,value就是要存放的变量。eg如下: // 声明一个ThreadLocal实例 ThreadLocal threadLocal = new ThreadLocal(); //... 1、ThreadLocal简介 ThreadLocal是一个全局对象,ThreadLocal是线程范围内变量共享的解决方案;ThreadLocal可以看作是一个map集合,key就是当前线程,value就是要存放的变量。eg如下: // 声明一个ThreadLocal实例 ThreadLocal threadLocal = new ThreadLocal(); //...
- 前面一篇文章中介绍了并发HashMap的主要成员属性,内部类和构造函数,下面在正式分析并发HashMap成员方法之前,先分析一些内部类中的字方法函数: 首先来看下ConcurrentHashMap内部类Node中的hash成员属性值的计算方法spread(int h): static class Node<K,V> implements Map.Entr... 前面一篇文章中介绍了并发HashMap的主要成员属性,内部类和构造函数,下面在正式分析并发HashMap成员方法之前,先分析一些内部类中的字方法函数: 首先来看下ConcurrentHashMap内部类Node中的hash成员属性值的计算方法spread(int h): static class Node<K,V> implements Map.Entr...
- 文章目录 Linux 对 IIC 的抽象 1、设备的驱动:i2c_driver 1.1、结构体 1.2、接口 1.3、实例化 2、设备:i2c_client 2.1、结构体 2.2、设备树方法实例化 3、适配器:i2c_adapter 3.1、结构体: 3.2、实例化: 4、通信: i2c_algorithm ... 文章目录 Linux 对 IIC 的抽象 1、设备的驱动:i2c_driver 1.1、结构体 1.2、接口 1.3、实例化 2、设备:i2c_client 2.1、结构体 2.2、设备树方法实例化 3、适配器:i2c_adapter 3.1、结构体: 3.2、实例化: 4、通信: i2c_algorithm ...
- 文章目录 1、底层数据结构 1.1、kobject 1.2、kset 2、中间层数据结构 2.1、bus_type 2.2、bus_type的注册:bus_register 2.3、device 2.4、device 向设备模型注册:device_register 2.5、 device_driver 2.6、驱动向设备模型注册:... 文章目录 1、底层数据结构 1.1、kobject 1.2、kset 2、中间层数据结构 2.1、bus_type 2.2、bus_type的注册:bus_register 2.3、device 2.4、device 向设备模型注册:device_register 2.5、 device_driver 2.6、驱动向设备模型注册:...
- 为什么需要Slab 平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 文章目录 为什么需要Slab 内存碎片问题 数据缓存 Slab的优点 内存碎片问题 首先内核会频繁的分配和释放内存,由于每次分配和释放的数据结构不同,所以不可避免的产生内存... 为什么需要Slab 平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 文章目录 为什么需要Slab 内存碎片问题 数据缓存 Slab的优点 内存碎片问题 首先内核会频繁的分配和释放内存,由于每次分配和释放的数据结构不同,所以不可避免的产生内存...
- 1. ArrayList如何保证线程安全? // 答案: // 方式一: // synchronizedList底层相当于把集合的set add remove方法加上synchronized锁 List<Object> list = Collections.synchronizedList(new ArrayList<>()); // 方式二... 1. ArrayList如何保证线程安全? // 答案: // 方式一: // synchronizedList底层相当于把集合的set add remove方法加上synchronized锁 List<Object> list = Collections.synchronizedList(new ArrayList<>()); // 方式二...
- 文章目录 硬件层描述结构 传输数据描述 上层驱动描述 平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 当今的 USB 设备种类非常繁多,USB 协议根据功能和特征对设备进行分类,然后对不同类别的设备指定不同的操作规范。例如当前的音频类、视频类设备等... 文章目录 硬件层描述结构 传输数据描述 上层驱动描述 平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 当今的 USB 设备种类非常繁多,USB 协议根据功能和特征对设备进行分类,然后对不同类别的设备指定不同的操作规范。例如当前的音频类、视频类设备等...
- put()方法是并发HashMap源码分析的重点方法,这里涉及到并发扩容,桶位寻址等等…JDK1.8 ConcurrentHashMap结构图: 1、put方法源码解析 // 向并发Map中put一个数据 public V put(K key, V value) { return putVal(key, value, false); } // 向并发Map... put()方法是并发HashMap源码分析的重点方法,这里涉及到并发扩容,桶位寻址等等…JDK1.8 ConcurrentHashMap结构图: 1、put方法源码解析 // 向并发Map中put一个数据 public V put(K key, V value) { return putVal(key, value, false); } // 向并发Map...
- 系列内容深入理解linux内核Linux字符设备驱动 环境: 平台内核版本安卓版本RK3399Linux4.4Android7.1 文章目录 1、内核模块开发1.1、内核模块1.2、加载和卸载模块1.3、模块初始化和退出1.4、初始化中的错误处理 2、主次编号2.1、设备编号的内部表示2.2、分配和释放设备编号 3、重要数据结构3.1、文件操作3.2、文件结构... 系列内容深入理解linux内核Linux字符设备驱动 环境: 平台内核版本安卓版本RK3399Linux4.4Android7.1 文章目录 1、内核模块开发1.1、内核模块1.2、加载和卸载模块1.3、模块初始化和退出1.4、初始化中的错误处理 2、主次编号2.1、设备编号的内部表示2.2、分配和释放设备编号 3、重要数据结构3.1、文件操作3.2、文件结构...
- 文章目录 struct tty_struct struct tty_driver struct tty_ldisc 终端设备的打开过程 平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 在整个终端管理(包括串口通信)中,有如下三个主要的数据结... 文章目录 struct tty_struct struct tty_driver struct tty_ldisc 终端设备的打开过程 平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 在整个终端管理(包括串口通信)中,有如下三个主要的数据结...
- 文章目录 net_device网络设备结构 sk_buff数据包管理结构 net_device网络设备结构 网络接口模块的核心数据结构为网络设备结构 struct net_device,该结构与实际的物理网卡对应,用来记录和描述网卡的相关信息和动作。具体定义如 下。 struct net_device { char n... 文章目录 net_device网络设备结构 sk_buff数据包管理结构 net_device网络设备结构 网络接口模块的核心数据结构为网络设备结构 struct net_device,该结构与实际的物理网卡对应,用来记录和描述网卡的相关信息和动作。具体定义如 下。 struct net_device { char n...
- 边沿触发&电平触发 //主线程试图占用a锁,但没有立即释放a,而是又去申请b锁。 /* 问题一:为什么没有sleep时还会进入回调函数*/ //加a锁只是保护a锁的资源,可以在加a锁的基础上加b锁,但要使a锁和b锁分别保护不同的临界区,否则就会出现读脏数据。 两种模式下触发事件的次数差很多,LT很多,ET很少,因此ET消耗资源少 LT:即电平触发模式 ... 边沿触发&电平触发 //主线程试图占用a锁,但没有立即释放a,而是又去申请b锁。 /* 问题一:为什么没有sleep时还会进入回调函数*/ //加a锁只是保护a锁的资源,可以在加a锁的基础上加b锁,但要使a锁和b锁分别保护不同的临界区,否则就会出现读脏数据。 两种模式下触发事件的次数差很多,LT很多,ET很少,因此ET消耗资源少 LT:即电平触发模式 ...
- 平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 文章目录 1、数据结构 1.1、spi_transfer 结构体 1.2、spi_message 2、数据发送程序分析 2.1、数据的准备 2.1.1、spi_message 链表的初始 2.1... 平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 文章目录 1、数据结构 1.1、spi_transfer 结构体 1.2、spi_message 2、数据发送程序分析 2.1、数据的准备 2.1.1、spi_message 链表的初始 2.1...
- JAVA基础(一) ● 请你比较一下Java和JavaSciprt? Java & JavaScript 参考回答: Java 是一种半编译半解释的完全面向对象的程序设计语言;JavaScript 是解释性的基于对象的脚本语言Java 诞生于 Sun 公司,后背 Oracle 收购;JavaScript 是由 Netscape 网景公司开发Ja... JAVA基础(一) ● 请你比较一下Java和JavaSciprt? Java & JavaScript 参考回答: Java 是一种半编译半解释的完全面向对象的程序设计语言;JavaScript 是解释性的基于对象的脚本语言Java 诞生于 Sun 公司,后背 Oracle 收购;JavaScript 是由 Netscape 网景公司开发Ja...
上滑加载中
推荐直播
-
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中 -
码道新技能,AI 新生产力——从自动视频生成到开源项目解析2026/04/08 周三 19:00-21:00
童得力-华为云开发者生态运营总监/何文强-无人机企业AI提效负责人
本次华为云码道 Skill 实战活动,聚焦两大 AI 开发场景:通过实战教学,带你打造 AI 编程自动生成视频 Skill,并实现对 GitHub 热门开源项目的智能知识抽取,手把手掌握 Skill 开发全流程,用 AI 提升研发效率与内容生产力。
回顾中
热门标签