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

golang
golang专题下共有 14276 篇文章
  • Golang协程池使用与实现详解
    Golang协程池使用与实现详解
    Golang协程池的大小应根据CPU核心数、任务类型、系统资源和压测结果确定。1.CPU核心数:协程池大小不应超过CPU核心数太多,一般为1-2倍;2.任务类型:CPU密集型任务应接近CPU核心数,I/O密集型任务可适当增加;3.系统资源:需考虑内存等限制,避免OOM;4.压测:通过测试调整大小,观察吞吐量和响应时间等指标找到最佳平衡点。
    Golang· Go教程   |  11个月  |   golang 协程池 并发 panic ants 336浏览 收藏
  • Golang命令行工具开发入门教程
    Golang命令行工具开发入门教程
    Golang命令行工具开发的核心在于利用Go语言的标准库和第三方库快速构建可执行程序,实现任务自动化。解决方案包括:1.明确需求与设计输入输出;2.根据复杂度选择flag、cobra或urfave/cli等库;3.使用os、io、encoding/json等处理文件和数据;4.编写模块化代码并进行错误处理;5.使用testing包和testify进行单元测试和集成测试;6.使用gobuild构建,goreleaser发布;7.使用viper管理配置;8.使用os/signal处理信号确保优雅退出。选择框架
    Golang· Go教程   |  11个月  |   golang 错误处理 单元测试 发布 命令行工具 286浏览 收藏
  • Golang单例模式怎么实现?
    Golang单例模式怎么实现?
    单例模式在Golang中确保一个类型在整个应用生命周期内只有一个实例。主要实现方式包括:1.使用sync.Once,这是最推荐的方式,通过once.Do保证初始化函数仅执行一次;2.使用互斥锁(Mutex)结合双重检查锁机制,减少锁竞争;3.饿汉式单例,在程序启动时即创建实例。为提高测试性,可通过接口实现mock。相较于全局变量,单例模式提供更佳的控制与扩展能力。最佳实践是优先使用sync.Once,并结合接口设计以提升可测试性。
    Golang· Go教程   |  11个月  |   golang 测试 接口 单例模式 sync.Once 302浏览 收藏
  • Golang实现智能设备通信的超实用小技巧
    Golang实现智能设备通信的超实用小技巧
    Golang在物联网应用中通过并发特性处理海量连接并优化资源利用。选择协议时,MQTT适用于资源受限设备;CoAP针对低功耗设计;HTTP通用性强但开销大,并提供对应库支持。使用goroutine和channel处理并发连接,结合连接池与负载均衡提升扩展性。数据安全方面,采用TLS/SSL加密、数字签名校验完整性,并定期更新固件。优化资源利用率可选用轻量级消息格式、压缩算法及pprof性能分析工具。远程管理可通过WebSockets实现双向通信,结合RESTfulAPI与设备管理平台如AWSIoTCore
    Golang· Go教程   |  11个月  |   golang 协议 安全 物联网 并发 368浏览 收藏
  • Golang多线程报错怎么查?racedetector排查指南
    Golang多线程报错怎么查?racedetector排查指南
    Golang多线程竞争问题可通过内置的racedetector排查,它通过编译时插入监控代码检测运行时数据竞争。使用方法是在gobuild/run/test命令后加-race参数,如gorun-racemain.go。其原理是记录内存访问元数据并检查Happens-Before关系,输出包括类型、地址、goroutineID、位置及堆栈信息。避免数据竞争的方法有:1.使用sync.Mutex互斥锁;2.使用sync.RWMutex读写锁;3.使用atomic包进行原子操作;4.通过channel传递数据而
    Golang· Go教程   |  11个月  |   golang Goroutine 数据竞争 并发 racedetector 143浏览 收藏
  • Go语言解决文件锁冲突?手把手教你实现文件并发控制
    Go语言解决文件锁冲突?手把手教你实现文件并发控制
    解决Golang文件锁冲突的核心方法包括:1.使用flock系统调用实现简单文件锁;2.使用fcntl实现更细粒度的锁控制;3.使用sync.Mutex进行单进程内存锁;4.采用分布式锁应对跨服务器场景。flock通过syscall.Flock函数加锁,fcntl通过Flock_t结构体定义锁范围,sync.Mutex适用于单机goroutine互斥,而分布式环境需借助Redis或ZooKeeper实现锁机制。选择方案时应根据并发场景、锁粒度和跨进程需求决定,并注意减少锁持有时间以提升性能,同时避免死锁问
    Golang· Go教程   |  11个月  |   golang 并发控制 文件锁 flock sync.Mutex 254浏览 收藏
查看更多
课程推荐
  • Golang深入理解GPM模型
    Golang深入理解GPM模型
    Golang深入理解GPM调度器模型及全场景分析,希望您看完这套视频有所收获;包括调度器的由来和分析、GMP模型简介、以及11个场景总结。
    474次学习
  • Go语言课程Gin框架实战
    Go语言课程Gin框架实战
    Gin是一个用Go(Golang)编写的HTTPweb框架。它是一个类似于 martini 但拥有更好性能的API框架,由于 httprouter,速度提高了近40倍。如果你需要极好的性能,使用Gin吧。
    339次学习
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
    205次学习
  • Go编程基础视频教程
    Go编程基础视频教程
    Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。我们收集了这套《Go编程基础视频教程》,希望能够帮助大家更好的学习go语言。
    168次学习
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
    129次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码