当前位置:首页 > 文章列表 >golang

golang
golang专题下共有 12060 篇文章
  • Golang跨平台文件锁实现方法
    Golang跨平台文件锁实现方法
    Golang实现跨平台文件锁需根据不同操作系统选择适配方案。1.使用syscall包调用系统接口,Linux/macOS通过flock实现POSIX锁,Windows则采用LockFileEx;2.根据场景选择共享锁(LOCK_SH)或排他锁(LOCK_EX),前者允许多个进程读取,后者确保独占访问;3.释放锁可通过defer语句、panic恢复及超时机制保障及时解锁;4.竞争问题可通过非阻塞锁、指数退避重试和超时放弃策略解决,必要时可引入分布式锁如Redis辅助管理。
    Golang· Go教程   |  1个月  |   golang 系统调用 跨平台 文件锁 syscall 133浏览 收藏
  • Golangmap并发优化:sync.Map与分片锁对比
    Golangmap并发优化:sync.Map与分片锁对比
    选择Golang并发安全map需根据业务场景权衡性能与实现复杂度。sync.Map适用于读多写少、无需遍历的场景,如缓存和配置管理;分片锁适合高频写入、需自定义逻辑的场景,通过哈希分片减少锁竞争。优化建议包括合理设置分片数、使用RWMutex、结合pprof压测分析性能瓶颈。最终应以实际压测结果为准,必要时可采用混合方案提升整体效率。
    Golang· Go教程   |  1个月  |   golang 优化 sync.Map 分片锁 并发map 139浏览 收藏
  • Golang模拟时间:fakeclock测试技巧
    Golang模拟时间:fakeclock测试技巧
    Go语言中测试时间相关逻辑的核心方法是使用fakeclock解耦对真实时间的依赖。1.创建fakeclock结构体,包含当前时间、互斥锁、自动推进模式和步长,并实现Now、Set、Advance等方法;2.定义Clock接口并让fakeclock和realclock实现该接口,以替换time.Now()调用;3.在测试中注入fakeclock实例,控制时间推进以验证时间相关函数的行为;4.处理time.Sleep()、time.After()和time.Ticker(),通过模拟等待、维护定时器队列或启动
    Golang· Go教程   |  1个月  |   golang 测试 时间函数 fakeclock 时间逻辑 229浏览 收藏
  • Golang文件读写优化:bufio与mmap对比
    Golang文件读写优化:bufio与mmap对比
    处理大文件或高频读写任务时,Golang中应根据场景选择bufio或mmap。1.bufio适合逐行处理,通过缓冲减少系统调用,适用于数据量适中、频繁小块写入的场景,优化方式包括设置合适缓冲区大小及减少Flush()调用;2.mmap适合超大文件的随机访问,实现零拷贝,但需注意内存占用和平台差异,适用于数据库快照、索引等高效读取需求;3.选择策略上,文本分析优先用bufio,需快速定位的大文件则选mmap,同时注意mmap可能因换页影响性能。两者各有优劣,关键在于合理匹配业务逻辑。
    Golang· Go教程   |  1个月  |   golang 性能优化 bufio 文件读写 mmap 349浏览 收藏
  • GolangHTTP中间件错误处理详解
    GolangHTTP中间件错误处理详解
    在Golang中统一处理HTTP请求错误应使用中间件,因为它能减少重复代码并提升业务逻辑清晰度。1.中间件通过封装http.HandlerFunc捕获错误或panic,集中处理日志、响应格式和状态码;2.可自定义HTTPError类型区分错误种类,并返回对应状态码;3.错误可通过直接调用http.Error()传递,或结合框架如chi、gin的内置机制;4.合理记录错误日志需包含路径、方法、IP等信息,同时避免敏感数据泄露。
    Golang· Go教程   |  1个月  |   golang 错误处理 日志记录 HTTP中间件 HTTPError 394浏览 收藏
  • Golangstrings库高效用法及BuilderReader优势
    Golangstrings库高效用法及BuilderReader优势
    Golang的strings库中高效的操作包括strings.Contains、strings.Index、strings.Replace和strings.Split;这些函数分别用于快速查找子字符串、定位子字符串位置、替换内容和按分隔符分割字符串,均基于优化算法实现;strings.Builder通过减少内存分配提升字符串拼接效率,而strings.Reader提供按需读取字符串的能力,适用于处理大型数据流。
    Golang· Go教程   |  1个月  |   golang 高效操作 strings.Builder strings库 strings.Reader 207浏览 收藏
查看更多
课程推荐
  • Golang深入理解GPM模型
    Golang深入理解GPM模型
    Golang深入理解GPM调度器模型及全场景分析,希望您看完这套视频有所收获;包括调度器的由来和分析、GMP模型简介、以及11个场景总结。
    474次学习
  • Go语言课程Gin框架实战
    Go语言课程Gin框架实战
    Gin是一个用Go(Golang)编写的HTTPweb框架。它是一个类似于 martini 但拥有更好性能的API框架,由于 httprouter,速度提高了近40倍。如果你需要极好的性能,使用Gin吧。
    338次学习
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
    204次学习
  • Go编程基础视频教程
    Go编程基础视频教程
    Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。我们收集了这套《Go编程基础视频教程》,希望能够帮助大家更好的学习go语言。
    167次学习
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
    129次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码