首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
菜刚RyuGou
掘友等级
微信公众号:码农RyuGou
|
无业游民
未来的不可知,是你前进的动力源
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
335
文章 334
沸点 1
赞
335
返回
|
搜索文章
最新
热门
为什么数组要从零开始?
对于这个问题,我觉得可以从以下两方面来考虑。 我们先了解一下数组最基本的结构和寻址方式(即实现方式)。 现在市面上无论是C、Java、PHP,还是Go或者其他编程语言,他们数组的实现方式,应该都是一样的:一段连续的内存。 假如我们把数组从1开始,对数组而言只是多了一步计算,但是…
图解Go的unsafe.Pointer
相信看过Go源码的同学已经对unsafe.Pointer非常的眼熟,因为这个类型可以说在源码中是随处可见:map、channel、interface、slice...但凡你能想到的内容,基本都会有unsafe.Pointer的影子。 接下来,我们就来了解一下Go的这个“不安全的…
图解go反射实现原理
Go反射的实现和interface和unsafe.Pointer密切相关。如果对golang的interface底层实现还没有理解,可以去看我之前的文章:Go语言interface底层实现,unsafe.Pointer会在后续的文章中做介绍。 Go语言中,每个变量都有唯一个静态…
图解redis五种数据结构底层实现(动图哦)
redis有五种基本数据结构:字符串、hash、set、zset、list。但是你知道构成这五种结构的底层数据结构是怎样的吗? 今天我们来花费五分钟的时间了解一下。 SDS是"simple dynamic string"的缩写。 所有非数字的key。例如set msg "hel…
动图了解I/O多路复用
你或许看过很多文章,但是还是感觉云里雾里的,今天,我们抛开文字,释放动图,或许你就理解了。 但是,服务器往往不会只处理一次请求,往往是多个请求,这一个请求,这时候每来一个请求,就会生成一个进程或线程。 在这些请求线程或者进程中,大部分都处于等待阶段,只有少部分是接收数据。这样一…
图解各路分布式ID生成算法
在分布式系统中,通常会用到分布式ID来标注数据的唯一性,而分布式ID的生成方式又多种多样,今天我们就来讨论一下主流的分布式ID生成策略。 第一,由于我们的分布式ID,是用来标识数据唯一性的,所以多数时候会被定义为主键或者唯一索引。 第二,并且绝大多数互联网公司使用的数据库是:M…
图解Golang的内存分配
以上是程序内存的逻辑分类情况。 Go是内置运行时的编程语言(runtime),像这种内置运行时的编程语言通常会抛弃传统的内存分配方式,改为自己管理。这样可以完成类似预分配、内存池等操作,以避开系统调用带来的性能问题,防止每次分配内存都需要系统调用。 内存分配算法采用Google…
图解Mysql执行计划explain
以下是Mysql执行计划的图解。在使用explain的时候可以参考使用。 PS:图片若小,可保存放大使用。
图解字符编码
有个类似于字典的东西,告诉计算机在此种情况(在此编码格式)下,某些数字该显示什么。 共收录128个字符,都是些最最基础的字符。详情请看百度百科 ASCII字符集的扩充。共收录256个字符。ASCII字符集基础上扩充了128个西欧常用字符(包括德法两国的字母) 划重点:made …
图解Golang的channel底层原理
废话不多说,直奔主题。 buf是有缓冲的channel所特有的结构,用来存储缓存数据。是个循环链表 lock是个互斥锁。 recvq和sendq分别是接收(<-channel)或者发送(channel <- xxx)的goroutine抽象出来的结构体(sudog)的队列。是个…
下一页
个人成就
文章被点赞
933
文章被阅读
117,592
掘力值
4,085
关注了
37
关注者
409
收藏集
5
关注标签
22
加入于
2017-02-14