并发不是并行

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

- 阅读全文 -

Go缓存库cache2go介绍

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

- 阅读全文 -

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四层协议。OSI七层

- 阅读全文 -

Golang http server代码原理学习

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

- 阅读全文 -

Go并发模式——Context

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

- 阅读全文 -

Cobra简介

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

- 阅读全文 -

构建最小的Go程序镜像

我们知道构建一个Docker镜像的时候往往需要引入一些程序依赖的东西,最常见的就是引入一个基础操作系统镜像,但这样往往会使得编译出来的镜像特别大。但是对于go语言,我们可以使用静态编译的方式构建出超小的镜像。有人会问Go本身不就是静态编译吗?请接着往下看。示例程序package main import ( "fmt" "io/ioutil"

- 阅读全文 -

微信公众号

公众号文章说明

随机文章

最近回复

  • NYC: 哈哈
  • NYC: 这样的确会有问题的,`clean_inactive`必须大于`i...
  • NYC: 主要原因还是按照最佳实践都应该用UTC时间,所以需求按照最佳实践...
  • lukez: 比如ignore_older参数比clean_inactive长...
  • QwQ: 按照教程配置IIS8.5主机环境Typecho伪静态问题终于解决...
  • W_Z_C: 果然可以,看了半天文档竟然没有发现这个插件,也是醉了……
  • xiongjunkun: hi, 你好, 能够详细解释一下导致filebeat重传的第二种...
  • NYC: 客气了
  • Aidan: 博主您的博客写的非常好,相见恨晚 ps: 不好意思,有点激...
  • Aidan: 博客您的博客写的非常好

分类

标签

归档