go
Go语言学习园地,致力于构建完善的 Golang教程
BigC哥
欢迎加入Python,群聊号码:166477
展开
-
使用delve和coredump对golang进行调试
coredump是一个包含程序意外终止时的内存快照的文件。它可以用于事后调试,以了解崩溃发生的原因以及其中涉及的变量。通过GOTRACEBACK,Go提供了一个环境变量来控制程序崩溃时产生的输出。这个变量可以强制生成coredump,便于调试。让golang程序生成core文件a. ulimit -c unlimited 修改 core 文件的大小b. 环境变量export GOTRACEBACK=crash 说明golang程序产生coredump可以使用gdb对coredump进行查看,delv原创 2021-08-26 11:35:39 · 689 阅读 · 0 评论 -
进程、线程、协程的区别?与Goroutine?
进程与线程(隔离与并行)进程进程可看作为分配资源的基本单位。比如你new出了一块内存,就是操作系统将一块物理内存映射到你的进程地址空间上(进程创建必须分配一个完整的独立地址空间),这块内存就属于这个进程,进程内的所有线程都可以访问这块内存,其他进程就访问不了,其他类型的资源也是同理。所以进程是分配资源的基本单位,也是我们说的隔离。线程线程作为独立运行和独立调度的基本单位,进而我们可以认为线程是进程的一个执行流,独立执行它自己的程序代码。线程上下文一般只包含CPU上下文及其他的线程管理信息,线程创建的原创 2020-12-05 23:05:50 · 222 阅读 · 0 评论 -
知识集锦
Kafka专题:1.kafka高性能的原因高性能包含两个方向写的高性能1)顺序写+page cache2)生产者批量发送消息集,压缩:生产者并不直接将消息发送给服务端,先在客户端把消息放入队列中,然后由一个消息发送线程从队列中拉取消息,以批量的方式发送给服务端。同一个节点上面的不同分区消息会一个批次发送,减少网络发送次数。kafka使用selector处理网络连接与读写处理。读的高性能1)顺序读+Zero copy2)消费者批量拉取(可以指定大小)开发者提升性能的手段1)增加partiti原创 2020-11-20 23:46:24 · 259 阅读 · 0 评论 -
Go 面试题(附答案解析)
1、写出下面代码输出内容package main import ( "fmt") func main() { defer_call()} func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println("打印后") }() panic("触发异常")}在原创 2020-11-04 00:00:15 · 2370 阅读 · 0 评论 -
go的单元测试驱动开发之web开发的单元测试
程序员开发过程中,最头疼的是bug,那么 有一种方法是单元测试,可以尽可能的减少上线出现故障的概率,什么是 GinGin 是一个用 Golang 写的 http web 框架。这是来自 Gin Github 上的描述。开发环境GoLand 2019.2 EAPGoLang 1.11.5采用 Go Modules 进行管理快速入门用 GoLand 新建项目的时候,我们选择 Go M...原创 2020-05-03 18:17:11 · 403 阅读 · 0 评论 -
Gin框架介绍及使用
Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin。Gin框架介绍Go世界里最流行的Web框架,Github上有32K+star。 基于httprouter开发的Web框架。 中文文档齐全,简单易用的轻量级框架。Gin框架安装与使用安装下载并安...原创 2020-03-03 08:31:40 · 439 阅读 · 0 评论 -
go 实现定时任务 删除 任务等等
go 实现定时任务InstallationTo download the specific tagged release, run:go get github.com/robfig/cron/v3@v3.0.0Import it in your program as:import "github.com/robfig/cron/v3"It requires Go 1.11 or l...原创 2020-02-17 20:30:10 · 2061 阅读 · 0 评论 -
如何写高大上的 godoc(Go 文档)
godoc 命令和 golang 代码文档管理https://www.jianshu.com/p/b9ce0cbaabd5介绍godoc 是 golang 自带的文档查看器,更多的提供部署服务go doc 和 godoc 在 golang 1.13 被移除了,可以自行安装 golang.org go1.13 godocgo get golang.org/x/tools/cmd/god...原创 2020-02-05 22:54:31 · 1504 阅读 · 1 评论 -
EMQX docker安装及运行
MQTT学习(六)–各类MQTT代理服务器特性对比(译文)_lordwish的专栏-CSDN博客https://blog.csdn.net/lordwish/article/details/850616875G 时代,万物互联消息引擎 | 全球领先的开源 MQTT 消息服务器 | EMQhttps://www.emqx.io/cn/程序安装 (Installation) — EMQ X - 百...原创 2020-01-07 22:56:29 · 1023 阅读 · 0 评论 -
Go--包引用介绍
Go–包引用介绍最近在学习Go编程,本文简单的叙述如何在Go编程中使用包(包管理)。和其他大多数语言一样,Go也存在包,并使用package关键字定义一个包。首先介绍在程序中如何引入包,引入包有以下几种方式:1. 最简单的方式引入一个包的方式是直接引入包,例如:import "fmt"import "os"2. 也可以通过下面的方式将包一块引入,并写在括号内:inport ("fm...原创 2020-01-01 20:12:47 · 478 阅读 · 0 评论