
goalng
Star_CSU
这个作者很懒,什么都没留下…
展开
-
golang 网络并发编程模型——为什么使用epoll
golang进程在启动时,会唯一创建epoll实例,并启动netpoll函数,轮询读取epoll中准备好的描述符,并唤醒网络连接描述符中对应的协程。通过多协程+epoll的网络模型,将协程的IO阻塞,控制在用户进程中,而不是在绑定线程后产生的系统调用阻塞,这样就可以避免大量线程被创建,而出现服务内存资源不够用的情况。原创 2020-12-06 22:55:12 · 1592 阅读 · 0 评论 -
Golang指针类型详解-附带指针测试代码
一、指针相关字段解释二、变量声明存储结构图中变量的声明假设是在函数内进行的,均属于局部变量。图表解释,通常来说变量名i、aj并不会真的独立出现在栈上的某个位置,都是伴随着一些操作出现的,加减法,赋值等操作。例如汇编加法指令,ADD$i,3,为变量i加3,通过变量名i这个地址找到真正的值,然后加3。关于变量值分配到堆上或者栈上,是和编译器编译时分析有关,正常可以理...原创 2019-11-10 17:42:54 · 573 阅读 · 0 评论 -
golang 定时任务方面time.Sleep和time.Tick的优劣对比
golang 写循环执行的定时任务,常见的有以下三种实现方式:1、time.Sleep方法: for { time.Sleep(time.Second) fmt.Println("我在定时执行任务") } 2、time.Tick函数: t1:=time.Tick(3*time.Second) for { ...原创 2019-01-25 18:56:26 · 30757 阅读 · 2 评论 -
http包发送模块详解-golang
功能简介完成http的发送和对http服务器响应数据的处理主要结构体简介1.Request,Response结构体,封装http内容以及解析http协议2.RoundTripper接口,能够执行HTTP发送,并能返回给定请求的response。该功能可由开发者实现3.TransPort结构体,http库内部实现的RoundTripper接口,使用request,reponse,...原创 2019-04-24 12:01:20 · 696 阅读 · 0 评论 -
锁、原子操作和golang mutex源码详解
锁的概念对于某一块代码段,多个线程或者协程同时执行会产生一些不符合预期的结果,就需要使用信号量保护这一段代码区,只能由一个线程来占用和执行这段代码.这相当于是一个大型的原子操作,由软件层面来实现.下面是一段结果不符合预期的代码段:var count =0 func main() { wg:=sync.WaitGroup{} wg.Add(2) g...原创 2019-06-17 15:10:20 · 1546 阅读 · 0 评论 -
Golang 反射介绍和性能分析
百度百科给的反射定义:“反射是一种计算机处理方式。有程序可以访问、检测和修改它本身状态或行为的这种能力。”我是觉着这个定义有点晦涩难懂,至少我在学Java的时候没太搞明白是什么意思。struct TestStrcut type{ IsField int `json:"is_field"`// 这个是IsField字段,类型是int,tag内容为is_field}为了让大家对反...原创 2019-09-22 20:35:36 · 3616 阅读 · 0 评论