并发不是并行

现在我们都说设计可并行的程序、高并发的程序?而且很多时候潜意识里面觉得对并行(Parallelism)和并发(Concurrency)的的区别很清楚,但是如果要明确的说出二者的区别,又感觉没法给出一个非常清晰的描述。最近看到Go语言发明者之一Rob Pike的一篇演讲《Concurrency is not Parallelism》,觉得挺不错的。因为特别喜欢的里面的配图示例,所以我决定写本篇...

Go缓存库cache2go介绍

cache2go是一个用Go实现的并发安全的缓存库,实现了如下特性:并发安全;可设置每条缓存的超时时间;内置缓存访问计数;自调节的缓存过期检查;可设置缓存增加/删除回调函数;and so on...这个库代码量很少,核心代码就三个文件,里面设计的技术点主要包括读写锁、goroutine、map操作等。作为Go语言学习样例也非常不错。1. 源码解析cache2go中主要涉及两个类型CacheI...

WebSocket协议及Go中的用法

本文主要介绍WebSocket以及Websocket在Golang中的实现和使用。1. WebSocket是什么?这里先列两篇文章:《WebSocket 是什么原理?为什么可以实现持久连接?》,这个是知乎上的一篇文章,对于WebSocket讲的通俗易懂,建议先看一下。The WebSocket Protocol RFC6455,这个是WebSocket的RFC文档,所以内容非常全面(当然只涉...

Go网络编程——Socket

以前主要使用的是Linux C网络编程,现在学习了Golang,就总结一下Go中的socket编程,本文基于Go 1.7.4,和socket相关的代码在go/src/net/net.go文件中。网络协议模型回顾我们先来简单回顾一下网络写协模型。说到网络协议一般就两个模型:概念意义上的OSI(Open Systems Interconnect)的七层协议和实际中使用的TCP/IP四层协议。OS...

Golang http server代码原理学习

本文基于Go 1.7.1,所有列的Go标准库的代码均来自于go/src/net/http/server.go文件。代码列的有点多,感觉有点乱,但是感觉代码列不全对于想看代码的人又难受。好吧,其实是写的乱。看起来需要耐心...拨云见雾Go中要实现一个简单的Web server非常的简单:package main import ( "io" "lo...

Go并发模式——Context

Context介绍在Go服务器程序中,每个请求都会有一个goroutine去处理。然而,处理程序往往还需要创建额外的goroutine去访问后端资源,比如数据库、RPC服务等。由于这些goroutine都是在处理同一个请求,所以它们往往需要访问一些共享的资源,比如用户身份信息、认证token、请求截止时间等。而且如果请求超时或者被取消后,所有的goroutine都应该马上退出并且释放相关的资...

Cobra简介

总览Cobra是spf13写的一个编写/生成交互式命令程序的框架,github地址是:https://github.com/spf13/cobra。有很多知名的开源项目都使用了这个框架:KubernetesHugorktetcdDocker (distribution)OpenShiftDelveGopherJSCockroachDBBleveProjectAtomic (enterpris...

构建最小的Go程序镜像

我们知道构建一个Docker镜像的时候往往需要引入一些程序依赖的东西,最常见的就是引入一个基础操作系统镜像,但这样往往会使得编译出来的镜像特别大。但是对于go语言,我们可以使用静态编译的方式构建出超小的镜像。有人会问Go本身不就是静态编译吗?请接着往下看。示例程序package main import ( "fmt" "io/ioutil&qu...
站点总览
  • 文章总数:278篇
  • 分类总数:15个
  • 评论总数:447条
  • 运行时间:6年288天
最近评论
徐小鹏小米手环5的睡眠监测确实不行,
Gordon那写入ES 只能单条写入加routing了? 不能bulk批量加吧? 会影响写入效率么?
Gordon有弊端的吧? 例如以用户ID作为routing 只适合按用户的搜索 没有传用户ID的就无...
多多非常好的文章,学习到了👍
窗外一叶我认为这本书里吹嘘的成分比较多,没有多少干货。移动通信网络(5G6G)和WiFi的界限会越来越...
aa懵逼
yhm流痞
马旭鹏路过
lukez比如ignore_older参数比clean_inactive长..其中逻辑请参考官方文档
QwQ按照教程配置IIS8.5主机环境Typecho伪静态问题终于解决了,救活了我的垃圾小站。