摘要: 什么是内存逃逸 局部变量本来分配在栈上,但是可能因为变量太大等情况导致分配到对上的情况称为内存逃逸。 方式 编译器可以证明变量在函数返回后不再被引用,才会分配到栈上,否则分配到堆上。 在栈上分配(静态内存分配),一般由系统进行申请和释放,例如:(函数的入参、局部变量、返回值等),每个函数都会分配一个 阅读全文
posted @ 2025-08-09 16:37 biby 阅读(16) 评论(0) 推荐(0)
摘要: context详解 简介 context.Context是go的标准库,主要用于跨goroutine传递取消信号、截止时间(超时)、以及在请求生命周期内传递数据。可以用来设置截止日期、同步信号、传递请求相关值的结构体,与goroutine有比较密切的关系。 在web程序中,每个request都需要开 阅读全文
posted @ 2025-08-09 14:39 biby 阅读(31) 评论(0) 推荐(0)
摘要: channel 简介 channel是goroutine之间通信的重要桥梁,借助channel,能够轻易的写出一个多协程通信程序。 概念 channel是一个通道,用于端到端的数据传输,跟消息队列有点像,只不过channel的发送和接收方都是goroutine对象,属于内存级别的通信。 传统的线程通 阅读全文
posted @ 2025-08-08 22:19 biby 阅读(71) 评论(0) 推荐(0)
摘要: channel的使用场景 回答结构 channel定义定位 关键场景 通信场景:Goroutine间传递数据 同步场景:协调执行顺序/状态 高级模式:解耦复杂并发逻辑 注意事项 避免死锁:没有goroutine接收导致发送阻塞 close的合理使用 有缓冲、无缓冲channel的选择 channel 阅读全文
posted @ 2025-08-08 16:35 biby 阅读(70) 评论(0) 推荐(0)
摘要: select select(选择器),可以同时等待多个通道操作。 将协程、通道和选择器结合,是Go的一个强大特性。 在Go语言中,select语句用于处理一个或多个channel操作,类似switch语句,但用于通信操作而不是切换操作。 select语句用于等待多个通信操作中的一个完成,然后执行相应 阅读全文
posted @ 2025-08-07 18:09 biby 阅读(11) 评论(0) 推荐(0)
摘要: Go调度器设计思想[GMP调度模型] 线程和协程 线程由CPU调度,是抢占式的。 协程由用户态调度,是协作式的,一个协程让出CPU后,才能执行下一个协程。 CSP Communicating Sequnetial Process,通讯顺讯进程,是七大并发模型中的一种。 核心观念是将两个并发执行的实体 阅读全文
posted @ 2025-08-06 22:30 biby 阅读(11) 评论(0) 推荐(0)
摘要: panic、defer、recover panic定义 panic是Go语言的一个内置函数,用于引发运行时的错误,当程序运行到某个不可恢复的错误状态时,可以调用panic函数,panic会立即停止当前函数的正常执行流程,然后逐级执行函数的defer语句(如果有),最后程序退出并输出错误信息(除非在上 阅读全文
posted @ 2025-08-06 19:30 biby 阅读(17) 评论(0) 推荐(0)
摘要: HotSpot虚拟机对象探秘 HotSpot虚拟机在Java堆中的对象分配、布局和访问。 对象的创建 如何划分可用空间。 并发下指针分配的安全问题。 普通Java对象、数组对象和Class对象。此处只讨论普通Java对象。 使用new关键字创建对象,在虚拟机中,这是怎样的一个过程? 当Java虚拟机 阅读全文
posted @ 2025-07-29 23:40 biby 阅读(32) 评论(0) 推荐(0)
摘要: 内存分配规则 对象的内存分配,就是在堆上分配。 对象主要分配在新生代的Eden区上,少数情况下可能直接分配在老年代。 分配规则不固定,取决于当前使用的垃圾回收器组合以及相关的参数配置。 对象优先在Eden分配 大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够空间进行分配时,虚拟机将发 阅读全文
posted @ 2025-07-21 21:55 biby 阅读(14) 评论(0) 推荐(0)
摘要: 垃圾回收策略与算法 需要关注垃圾回收的内存位置 程序计数器、java虚拟机栈、本地方法栈、栈帧的生命周期跟随线程或方法,内存在生命周期结束时回收,不需考虑回收问题。 关注的内存区域:堆跟方法区[程序运行期间才知道创建哪些对象,内存分配和回收都是动态的,垃圾收集器所关注的是这部分内存]。 判断对象是否 阅读全文
posted @ 2025-07-16 15:39 biby 阅读(17) 评论(0) 推荐(0)