RunLoop最细详解 Runloop的实现机制 RunLoop 通过mach_msg()函数接收、发送消息。它的本质是调用函数 mach_msg_trap(),相当于是一 个系统调用,会触发内核状态切换。在用户态调用时会切换到内核态; 而内核态中内核实现了mach_msg()函数会完成实际的工作。 RunLoop基本作用 保持程序的不断运行 处理App中的各种事件,触摸事件,定时器事件 节省CPU的资源,提高程序 移动开发 2025年06月22日 154 点赞 0 评论 18191 浏览
Netty线程模型相关概念知识 点击查看 官网 点击查看NIO相关的知识 Java - NIO网络编程 一、Netty 简介 Netty是一个高性能、高可扩展性的异步事件驱动的网络应用程序框架,它极大地简化了TCP和UDP客户端和服务器开发等网络编程。 Netty重要的四个内容 Reactor线程模型:一种高性能的多线程程序设计思路 Netty中自己定义的Channel概念:增强版的通道概念 ChannelPipelin 移动开发 2025年06月22日 110 点赞 0 评论 6769 浏览
如何设计一个可靠传输协议? 1.0——设计一个理想化的可靠传输协议 topdown理解计算机网络这本书从1.0升级到3.0带我们走进可靠协议的设计思路,不可靠的本质是loss&&bit error,假定没有这种bad case,作者带领我们设计一种完美可靠传输协议,版本1.0。 发送端【rdt_send】可靠传输提供给应用层的发送数据接口,经过可靠传输协议处理之后,交给【udt_send】不可靠 移动开发 2025年06月22日 159 点赞 0 评论 5883 浏览
面试官:ThreadLocal使用场景有哪些?内存泄露问题如何避免? ThreadLocal使用场景有哪些? image.png 推荐学习:必刷的30万面试题:巧用弱引用解决ThreadLocal内存泄漏! Thread类中有两个变量threadLocals和inheritableThreadLocals,二者都是ThreadLocal内部类ThreadLocalMap类型的变量,我们通过查看内部内ThreadLocalMap可以发现实际上它类似于一个 移动开发 2025年06月22日 178 点赞 0 评论 9346 浏览
Object.is()详解 ES5判断两个值是否相等,有两种方法:相等运算符(==)和严格相等运算符(===)。这两种方法都有缺点,前者会自动转换数据类型,后者判断NaN不等于自身,+0 等于 -0 ES6新出了Object.is方法解决这个问题。如果满足以下任意条件则两个值相等: 都是 undefined 都是 null 都是 true 或都是 false 都是相同长度、相同字符、按相同顺序排列的字符串 都是相同对象(意 移动开发 2025年06月22日 91 点赞 0 评论 5660 浏览
Android四大组件的工作过程 一、Activity启动过程 应用冷启动过程: Launcher进程通过Binder机制通知AMS创建应用 AMS判断当前应用是否启动,没有启动通过Socket通讯通知Zygote进程fork应用进程 AMS通过Binder机制请求ApplicationThread创建并启动根Activity ApplicationThread通过Handle机制通知主线程ActivityThre 移动开发 2025年06月22日 67 点赞 0 评论 8357 浏览
用 Flutter 的 Canvas 画点有趣的图形 简介 上一篇我们介绍了使用 Flutter 的 Canvas 绘制基本图形的示例,简单的示例没什么好玩的,今天这一篇我们来点有趣的,我们会完成如下图形的绘制: 发现数学重复之美:使用等边三角形组合成彩虹伞面。 绘制彩虹。 绘制评分用的五角星。 通过这一篇,我们可以知道自定义形状绘制的基本原理,然后可以在这个基础上绘制你自己想要绘制的图形。 等边三角形构建重复之美 首先我们来绘制等边三角形,其实 移动开发 2025年06月22日 113 点赞 0 评论 12909 浏览
iOS离屏渲染 屏幕显示完整流程 2022080801.jpg 2022080802.jpg 整体渲染流程可以分为三个阶段: 1、CPU阶段: CPU的计算主要是通过CoreAnimation来处理,通过OpenGL ES/Metal将数据传递给GPU。 2、GPU阶段: GPU渲染主要是将接收到的渲染数据进行一系列渲染之后将帧数据存储在帧缓存(Frame Buffer)里面,供视 移动开发 2025年06月22日 144 点赞 0 评论 3981 浏览
如何解决 ‘adb‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的问题 在cmd中输入 adb ,显示 ‘adc‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的问题 解决办法:在环境变量中添加adb所在的路径1、找到 adb.exe 的所在的文件路径,一般在 Android 安装目录下 \sdk\platform-tools\adb.exe我的路径是在:D:\Android\Sd 移动开发 2025年06月22日 89 点赞 0 评论 3248 浏览
Android学习总结之Room篇 一、Room 框架基础1. 实体类(Entity)实体类用于描述数据库表的结构。通过使用 @Entity 注解,可以将一个 Java 类映射到数据库中的一张表。例如,以下是一个简单的 User 实体类:import androidx.room.Entity; import androidx.room.PrimaryKey 移动开发 2025年06月22日 136 点赞 0 评论 13334 浏览