赞了回答2020-11-05
return结束当前函数,并返回指定值runtime.Goexit结束当前goroutine,其他的goroutine不受影响,主程序也一样继续运行os.Exit会结束当前程序,不管你三七二十一
赞了问题2020-09-29
赞了文章2020-05-20
How do I know whether a variable is allocated on the heap or the stack?From a correctness standpoint, you don't need to know. Each variable in Go exists as long as there are references to it. The storage location chosen by the implementation is ir...
赞了文章2020-05-19
在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLock或Synchronized)进行互斥控制。在单机环境中,Java中提供了很多并发处理相关的API。但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程...
赞了文章2020-05-16
就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身。我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省储存空间。
赞了文章2020-05-04
构建高可用、高性能的通信服务,通常采用服务注册与发现、负载均衡和容错处理等机制实现。根据负载均衡实现所在的位置不同,通常可分为以下三种解决方案:
赞了文章2020-03-30
Go 实际上已经在 math 包中实现了 abs() : math.Abs ,但对我的问题并不适用,因为它的输入输出的值类型都是 float64,我需要的是 int64。通过参数转换是可以使用的,不过将 float64 转为 int64 会产生一些开销,且转换值很大的数会发生截断,这两点都会在文章说清楚。
赞了文章2020-02-03
内核态用户态读写流程 write调用的过程 用户态的用户程序对socket进行write调用 内核会搬运用户程序缓冲区的数据到内核写缓冲区(发送缓冲区),搬运完毕write调用就会返回(即使缓冲区上的数据还没发送出去) 内核TCP协议栈会搬运数据从内核写缓冲区(发送缓冲区)...
赞了回答2020-01-16
首先,这个编译型语言关系不大,很多具有垃圾回收的语言都会遇到这个问题 其次,既然 Golang 有垃圾回收,当然就不需要你手动回收了 最后,那为什么程序的内存不会降低呢?有几种可能: Golang 的 http 库有 bug,会导致内存泄漏 内存已经被 runtime 回收,但并没有...
赞了文章2020-01-06
总得来说,今年跌宕起伏,也是第一次感受到了来自于网络的压力和焦虑,真的是非常难忘的一年。 今年关键字:中年危机。 生活 足迹 成都·文档闭关; 杭州·电子工业出版社技术出版高峰论坛; 上海·FDCon 2019; 仙都·团队同好出游; 塞班·团队 Outing; 苏州·幻奏乐景...
发布了文章2020-01-05
前言 数据库查询 在 go 开发中, 查询数据库一般有两种选择: 使用 orm (gorm\xorm 等) 直接写 SQL 直接编写 SQL 语义清晰, 不易出错, 但是遇到多个可变条件时显得不灵活 ORM 有模型关系, 记录预加载 (sql 生成优化) 等功能, 但是 sql 语句对开发人员相对透明, 管了太...
发布了文章2020-01-02
go 的 goroutine 提供了一种较线程而言更廉价的方式处理并发场景, go 使用二级线程的模式, 将 goroutine 以 M:N 的形式复用到系统线程上, 节省了 cpu 调度的开销, 也避免了用户级线程(协程)进行系统调用时阻塞整个系统线程的问题。【1】
赞了回答2019-12-23
nginx1.9之后,通过SO_REUSEPORT支持端口服用,该socket参数由操作系统提供,允许多个套接字侦听相同的IP地址和端口组合,内核负责调度。[链接]
赞了文章2019-09-26
go自从出生就身带“高并发”的标签,其并发编程就是由groutine实现的,因其消耗资源低,性能高效,开发成本低的特性而被广泛应用到各种场景,例如服务端开发中使用的HTTP服务,在golang net/http包中,每一个被监听到的tcp链接都是由一个groutine去完成处理其上下文的,...
赞了文章2019-09-05
作为一个 gophper,我相信你对于 panic 和 recover 肯定不陌生,但是你有没有想过。当我们执行了这两条语句之后。底层到底发生了什么事呢?前几天和同事刚好聊到相关的话题,发现其实大家对这块理解还是比较模糊的。希望这篇文章能够从更深入的角度告诉你为什么,它...
赞了回答2019-08-22
其实,nginx是在epoll的地方同步监听socketfd的"改变",如果检测到一个sokcetfd“改变”,那么就调用对应的socketfd异步handle.
赞了文章2019-07-20
服务注册与服务发现是在分布式服务架构中常常会涉及到的东西,业界常用的服务注册与服务发现工具有 ZooKeeper、etcd、Consul 和 Eureka。Consul 的主要功能有服务发现、健康检查、KV存储、安全服务沟通和多数据中心。Consul 与其他几个工具的区别可以在这里查看 Cons...
赞了文章2019-07-10
HTTP/2有三大特性:头部压缩、Server Push、多路复用。前两个特性意思比较明确,也好理解,唯有多路复用不太好理解,尤其是和HTTP1.1进行对比的时候,这个问题我想了很长时间,也对比了很长时间,现在把思考的结果分享出来,希望对大家有帮忙。
赞了文章2019-07-09
当一个O2O电商系统到达一定规模之后,就需要考虑系统的可扩展性、松耦合和组件化。一般采用的都是基于时下比较流行SpringCloud和Dubbo的分布式的微服务的架构模式,虽然模块间能够独立部署了,但是模块间的还是强依赖关系,每次改动都需要重新发版上线,产品迭代速度...
赞了回答2019-05-22
可以先对 $all 数组先做一下预处理 {代码...}