首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LinuGo_guozhao
掘友等级
Golang开发,运维
|
360
Golang技术公众号:LinuGo
获得徽章 7
动态
文章
专栏
沸点
收藏集
关注
作品
赞
16
文章 16
沸点 0
赞
16
返回
|
搜索文章
最新
热门
etcd分布式锁的实现原理
在同一个进程里面,为了避免对共享变量产生数据竞争,通常可以通过加锁解锁的方式来避免。但是如果是多个进程,操作同一份资源,就不能用普通的锁了,这时候的“锁”需要一个能共享的介质来存储,使用它的进程可以通
etcd的MVCC是怎么实现的
MVCC是什么 在了解之前,首先需要明白乐观锁与悲观锁的概念。乐观锁与悲观锁是两种编程思想,并不局限与编程语言。 悲观锁 在对临界资源做一些读写时候,为了防止其他人同步修改数据,直接把数据锁住,操作完
etcd的租约是怎么实现的
我们都知道Redis可以通过expire命令对key设置过期时间,来实现缓存的ttl,etcd同样有一种特性可以对key设置过期时间,也就是租约(Lease)。
etcd的watch是怎么实现的
工作当中使用etcd作为配置中心,主要使用了etcdclient提供的watch接口对存储的配置进行实时监听更新,很好奇etcd内部是如何做到不丢数据并联通上下游的,于是翻看了部分v3版本实现代码
从内核角度看待Redis回收子进程
疑问出现 之前写过一篇关于僵尸进程和孤儿进程,建议先理解僵尸进程效果会好些。 偶然间想到了一个问题,Redis可以通过RDB进行数据的持久化,使用bgsave命令会fork出来一个子进程,当持久化结束
epoll在Golang的应用
使用Golang可以轻松地为每一个TCP连接创建一个协程去服务而不用担心性能问题,这是因为Go内部使用goroutine结合IO多路复用实现了一个“异步”的IO模型,这使得开发者不用过多的关注底层,而只需要按照需求编写上层业务逻辑。这种异步的IO是如何实现的呢?下面我会针对Li…
怎么给容器抓包
在生产中,容器为了轻量级,里面并没有封装一些ip,ping这些基础命令,这时候可以通过进入容器的网络命名空间来执行命令。当然,也可以用这种方式对容器进行抓包。 接下来介绍一下如何使用上述命令对容器进行抓包。 对于一般的容器,只有一个进程,Pid如图所示。 有的容器里面运行着多个…
Time.sleep(XX)后发生了什么
我们都知道,Time.sleep(d duration)方法会阻塞一个协程的执行直到d时间结束。 用法很简单,但内部实现却是大有文章,每个go版本的timer的实现都有所不同,本文基于go1.14,接下来分别从宏观和围观介绍一遍主要调度实现过程。 首先存在多个goroutine…
Golang并发模型GMP浅尝
进程与线程的区别是什么?这是一个老生长谈的一道面试题。处于不同层面对该问题的理解也大不相同。对于用户层面来说,进程就是一块运行起来的程序,线程就是程序里的一些并发的功能。对于操作系统层面来说,标准回答是“进程是资源分配的最小单位,线程是cpu调度的最小单位”。接下来先从操作系统…
一个demo搞懂channel数据结构
大多数的编程语言的并发编程模型是基于线程和内存同步,而Golang 的并发编程的模型则用 goroutine 和 channel 来替代,goroutine用于执行并发任务,channel用于并发控制以及goroutine的通信。这次跟随一个demo探索一下channel底层的…
下一页
个人成就
文章被点赞
29
文章被阅读
15,146
掘力值
345
关注了
36
关注者
8
收藏集
0
关注标签
3
加入于
2019-12-01