上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 234 下一页

2021年4月21日

golang里channel的实现原理

摘要: channel是消息传递的机制,用于多线程环境下lock free synchronization. 它同时具备2个特性: 1. 消息传递 2. 同步 golang里的channel的性能,可以参考前一篇:http://blog.sina.com.cn/s/blog_630c58cb01016xur 阅读全文

posted @ 2021-04-21 09:52 ExplorerMan 阅读(568) 评论(0) 推荐(0)

2021年4月20日

最长回文子序列

摘要: 【题目】 注意,子序列跟子串是不一样的。子序列是从字符串中取出元素,相对顺序不变,但是可以不挨着。子串肯定是截取一段。 【方法一:记忆化搜索】 假设fun(char[] S , int i , int j) 返回的是串S[i...j]的最长回文子序列。 则如果S[i]==S[j] , 则:fun(S 阅读全文

posted @ 2021-04-20 11:44 ExplorerMan 阅读(87) 评论(0) 推荐(0)

2021年4月19日

GO语言的goroutine并发原理和调度机制

摘要: 1. 线程(Thread)和协程(Coroutine)的定义 Go语言最大的特色就是从语言层面支持并发(Goroutine),Goroutine是Go中最基本的执行单元。事实上每一个Go程序至少有一个Goroutine:主Goroutine。当程序启动时,它会自动创建。 为了更好理解Goroutin 阅读全文

posted @ 2021-04-19 18:31 ExplorerMan 阅读(662) 评论(0) 推荐(0)

golang 常见问题

摘要: 1、go的调度 2、go struct能不能比较 因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型 3、go defer(for defer),先进后出,后进先出 4、select可以用于什么,常用语gorotine的完美退出 gola 阅读全文

posted @ 2021-04-19 18:06 ExplorerMan 阅读(361) 评论(0) 推荐(0)

容器核心技术 :Cgroup 与 Namespace

摘要: 容器 = cgroup + namespace + rootfs + 容器引擎 Cgroup: 资源控制 namespace: 访问隔离 rootfs:文件系统隔离。镜像的本质就是一个rootfs文件 容器引擎:生命周期控制 一、Cgroup Cgroup 是 Control group 的简称,是 阅读全文

posted @ 2021-04-19 18:02 ExplorerMan 阅读(536) 评论(0) 推荐(0)

2021年4月16日

Go语言---strings包(字符串操作)

摘要: strings标准库包主要涉及字符串的基本操作。 常见字符串的操作有: 字符串求长度 求子串 是否存在某个字符或者子串 子串出现的次数(字符串匹配) 字符串分割(切分)成[]string 字符串是否存在某个前缀或后缀 字符或者子串在字符串中首次出现的位置或最后一次出现的位置 通过某个字符串将[]st 阅读全文

posted @ 2021-04-16 11:43 ExplorerMan 阅读(1159) 评论(0) 推荐(0)

gRPC为什么用HTTP2作为传输协议

摘要: HTTP / 2: 多路复用 TCP连接 二进制代替文本 标题压缩 服务器推送 基于HTTP/2 的缺点 rpc的元数据的传输不够高效 尽管HPAC可以压缩HTTP Header,但是对于rpc来说,确定一个函数调用,可以简化为一个int,只要两端去协商过一次,后面直接查表就可以了,不需要像HPAC 阅读全文

posted @ 2021-04-16 10:38 ExplorerMan 阅读(563) 评论(0) 推荐(0)

Golang 服务优雅重启

摘要: 很多时候对于服务升级的做法简单粗暴, 就简单的杀进程启动新的进程. 还有的好一点就是多个相同的服务依次升级, 保证有服务可用. 但是公平的说这两种都会丢失请求中的连接. 鉴于这种情况, 在现实中我们可以使用优雅重启来搞定这个问题. Golang 实现优雅重启的原理也很简单: 监听 USR2 信号; 阅读全文

posted @ 2021-04-16 10:21 ExplorerMan 阅读(317) 评论(0) 推荐(0)

go优雅重启或停止

摘要: 想要优雅地重启或停止你的Web服务器,使用下面的方法 我们可以使用fvbock/endless来替换默认的ListenAndServe,有关详细信息,请参阅问题#296 router := gin.Default() router.GET("/", handler) // [...] endless 阅读全文

posted @ 2021-04-16 00:42 ExplorerMan 阅读(580) 评论(0) 推荐(0)

go语言sync包的学习(Mutex、WaitGroup、Cond)

摘要: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 阅读全文

posted @ 2021-04-16 00:25 ExplorerMan 阅读(109) 评论(0) 推荐(0)

上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 234 下一页

导航