摘要: 声明:本文是《Go并发编程实战》的样章,禁止以任何形式转载此文。 摘要: 我们已经知道,原子操作即是进行过程中不能被中断的操作。也就是说,针对某个值的原子操作在被进行的过程当中,CPU绝不会再去进行其它的针对该值的操作。无论这些其它的操作是否为原子操作都会是这样。为了实现这样的严谨性,原子操作仅会由 阅读全文
posted @ 2017-08-30 15:29 sunsky303 阅读(7378) 评论(0) 推荐(0) 编辑
摘要: 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的, 阅读全文
posted @ 2017-08-24 14:39 sunsky303 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 用法: 相关参数仅供参考,具体数值还需要根据机器性能,应用场景等实际情况来做更细微调整。 net.core.netdev_max_backlog = 400000#该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。net.core.optmem_max 阅读全文
posted @ 2017-08-24 10:52 sunsky303 阅读(422) 评论(0) 推荐(0) 编辑
摘要: TCP协议解析 TCP是一个巨复杂的协议,因为它要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP详解 卷1:协议》(当然,你也可 阅读全文
posted @ 2017-08-24 10:47 sunsky303 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 如今公司很多新项目都采取merge request方式来进行code review、非阻塞上线部署,因此掌握merge request很有必要,步骤如下: 1、现在本地用创建一个本地分支, 2、改动{分支名称}你需要改动的代码。 3、进入你的项目根目录下,运行如下命令,将{分支名称}推到远程分支。 阅读全文
posted @ 2017-08-22 11:19 sunsky303 阅读(9102) 评论(0) 推荐(0) 编辑
摘要: 摘要 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。 简介 在软件管理的领域里存在 阅读全文
posted @ 2017-06-26 13:48 sunsky303 阅读(574) 评论(0) 推荐(2) 编辑
摘要: 一个比ack速度快n倍的代码搜索工具: ag 银搜索者(The Silver Searcher) 一个类似于代码搜索工具ack,着重于速度。 Github: https://github.com/ggreer/the_silver_searcher Ag有什么好处? 它比一个数量级快ack。 它忽略 阅读全文
posted @ 2017-06-13 10:30 sunsky303 阅读(1824) 评论(0) 推荐(0) 编辑
摘要: 3个月没写PHP了,这是我的第一个中小型go的websocket微服务。那么问题来了,github上那么多轮子,我为什么要自己造轮子呢? Why 造轮子? 因为这样不仅能锻炼自己的技术能力,而且能帮助深入了解其中的实现原理。 直接上流程图: 其实其中有些难点并没有反映出来,比如历史消息数据的存储结构 阅读全文
posted @ 2017-06-04 22:46 sunsky303 阅读(1328) 评论(1) 推荐(0) 编辑
摘要: 老解法: 或: 有没有发现,都使用了队列或链表的结构, 其实没必要,只用数组就可以, 而且现代c/c++支持动态数组。 我用go写的。 怎么样, 很清爽吧 阅读全文
posted @ 2017-05-12 11:22 sunsky303 阅读(241) 评论(1) 推荐(0) 编辑
摘要: 【一通百通】Bash的单双括号建议:多用[[]], 少用[] 阅读全文
posted @ 2017-05-02 18:25 sunsky303 阅读(310) 评论(0) 推荐(0) 编辑
显示搜索