概述 go 的 select 语句是专门为了 channel 发送和接收消息而诞生的语句, 在语句的运行期间, 该 goroutine 是阻塞的. DEMO func main() { ch1 := make(chan int, 1) ch2 := make(chan int, 1...
namespace 的概念 namespace 是 Linux 内核用来隔离内核资源的方式。通过 namespace 可以让一些进程只能看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的资源,这两拨...
惊群 怎么理解 当你往一群鸽子中间扔一块食物,虽然最终只有一个鸽子抢到食物,但所有鸽子都会被惊动来争夺,没有抢到食物的鸽子只好回去继续睡觉, 等待下一块食物到来。这样,每扔一块食物...
引子:在之前的文章里 golang netpoll的实现与分析 讲了一些,对于golang netpoll的实现,但是,数据是怎么通过硬件到达golang的这块不是太明确,今天就主要分析下这一块。 linux的网络的基本...
坑1,赋值 s1 = []int{1,2,3,4,5} s2 := s1 s2 = append(s2, 1) //s1[5]是什么? 由于切片是引用类型,首地址都一样,因此对当切片没有被扩容的时候,会影响之前的对象。如果扩容了,就不会影...
io模型 计算机的io模型区分为多种,目前用的最多的也就是nio、epoll、select。 结合不同场景使用不同的io模型才是正解。 具体可以查看我之前写的io模型演进。io模型演进 golang中网络io gola...
现在面试都这么直接的嘛? 面试难如狗,肝不过年轻人怎么办,只能多总结。 slice 那么切片,就是今天的主角了。 直接搜哈。 问题1,slice的底层数据结构 我擦,这么直接的嘛? 我猜是数组加链...
Linux进程和线程的上下文切换开销,大约是3-5us之间。这个开销确实不算大,但是海量互联网服务端和一般的计算机程序相比,特点是: 高并发:每秒钟需要处理成千上万的用户请求 周期短:每个用...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定删除此文章吗?
动弹删除后,数据将无法恢复
评论删除后,数据将无法恢复