Go语言中如何开启 TCP keepalive?

本篇文章首先简单介绍了 TCP keepalive 的机制以及运用场景。接着介绍了 Go 语言中如何开启与设置 TCP keepalive。但是由于 Go 语言最上层的接口不够灵活,从而引出在 Go 语言中如何使用系统调用设置 TCP 连接的文件描述符属性。接着原作者就掉坑里了。

Go语言之select的使用和实现原理

select简介1.Go的select语句是一种仅能用于channl发送和接收消息的专用语句,此语句运行期间是阻塞的;当select中没有case语句的时候,会阻塞当前groutine。2.

Go 每日一库之 Uber 开源的优秀日志库 zap

在很早之前的文章中,我们介绍过 Go 标准日志库log和结构化的日志库logrus。大家如果发现好玩、好用的 Go 语言库,欢迎到 Go 每日一库 GitHub 上提交 issue。

Go学习(十六):并发编程-协程初使用

1.什么是协程?协程又称为微线程,是一种比线程更加轻量级的存在。正如一个进程可以拥有多个线程,一个线程也可以拥有多个协程。协程是编译器级的,进程和线程是操作系统级的。协程不被操作系统内核管理,而完全由程序控制,因此没有线程切换的开销。2.

Go语言核心36讲(Go语言基础知识三)–学习笔记

这两个文件的不同之处在于,demo2.go 直接通过调用fmt.Printf函数打印问候语,而当前的 demo4.go 在同样位置调用了一个叫作hello的函数。

Go 编程:如何实现协程调度的精准控制

说起 Go 协程的调度,如果你了解 Go 调度器以及其实现的 G/P/M 模型,当然有助于应用的开发。简单的协程控制,很多人都会使用 sync.WaitGroup 进行多协程的控制。

Go工程化系列:单元测试

序从我们开始开发以来,应该很多人都提到过测试的重要性,而在所有的测试类型当中,以单元测试为代表的单元测试无疑是成本最小,性价比最高的一种,而且有的公司为了保证质量会要求单元测试覆盖率的指标(包括我们)image.

Go语言 | 并发设计中的同步锁与waitgroup用法

只有goroutine以及channel有时候还是不足以完成我们的问题,比如多个goroutine同时访问一个变量的时候,我们怎么保证这些goroutine之间不会互相冲突或者是影响呢?

Go语言编程从入门到精通,WEB服务,路由、响应、报头、GET、POST

Go标准库中的net/http提供了http服务器的方法。从写一个最基本的HTTP服务器示例开始学习。代码解析:3行:import “net/http”,导入net/http包14行:http.

Go语言面试必备 深入Go channel内部实现 1

在介绍底层原理之前,我们先简单地介绍一下channel的使用方法,比如初始化,发送和接收消息,然后我们在分别介绍他们在底层是如何实现的。使用channel的常见使用方法如下。