在一般人的眼中,“并行”就是并行,即你干你的,我干我的,两个“并行”的执行过程可能是两条毫无瓜葛的平行线,也可能是有交叉,但瞬即分开的两条线。不 过在程序员的世界里,有关“并行”的概念却有两个单词:Concurrency和Parallelism,对应的比较主流的中文翻译为并发 (Concurrency)和并行(Parallelism)。结合现实例子谈并发和并行。 我要晨读
超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定。HTTPS连接经常被用于万维网上的交易支付和企业信息系统中敏感信息的传输。HTTPS不应与在RFC 2660中定义的安全超文本传输协议(S-HTTP)相混。本文讲解https原理以及golang基本实现。 我要晨读
在GopherCon2015开幕之 际,Google Go Team终于放出了Go 1.5Beta1版本的安装包。因为Go 1.5变动太大,需要更多时间来准备这次发布(fix bug, Write doc)。关于Go 1.5的变化,之前Go Team staff在各种golang技术会议的slide 中暴露不少。这篇文章就想和大家一起浅显地体验一下go 1.5都给gophers们带来了哪些变化吧。 我要晨读
Go1.5 改进摘要:纯Go(+少量汇编)实现 runtime 和 编译器、改进 垃圾回收器, 支持 并发 (有个指标好像是 停顿在 10 毫秒以内)、GOMAXPROCS 默认值改为 CPU 核数 等,更多改进和变化,查看文章。 我要晨读
一致性哈希可用于解决服务器均衡问题。用Golang简单实现了下,并加入了权重。可采用合适的权重配合算法使用。本文基本是代码,有兴趣的或需要的拿走…… 我要晨读
jpg和png 图片很常见,Go 编程中可能需要读取或生成这些类型的图片。Go 标准库提供了相应的包来处理这些问题。本文介绍 golang中image/jpeg包和image/png包用法。 我要晨读
golang中sync包实现了两种锁Mutex (互斥锁)和RWMutex(读写锁),其中RWMutex是基于Mutex实现的,只读锁的实现使用类似引用计数器的功能。本文介绍golang中sync.RWMutex和sync.Mutex区别。 我要晨读
上一篇go语言nsq源码解读-基本介绍,介绍了最基本的nsq环境搭建及使用。在最后使用时,我们用到了几个命令:nsqlookupd、nsqd、nsqadmin、curl及nsq_to_file,并看到用curl命令写入的几个”hello world”被nsq_to_file命令保存在了硬盘文件中。本节中,将讲述这几个命令的作用、用法。 我要晨读
go语言nsq源码解读序列晨读:NSQ是由知名短链接服务商bitly用Go语言开发的实时消息处理系统,具有高性能、高可靠、无视单点故障等优点,是一个非常不错的新兴的消息队列解决方案。本文对nsq进行基本介绍。 我要晨读
项目中,经常会遇到不同类型切片之间的转换,一般的做法是遍历转换,这种方式不通用。本文介绍:将 []T 切片转换为 []byte,将 []X 转换为 []Y 切片。 我要晨读
Go中连接数据库的连接池:当你需要和数据库通信时,就会从连接池里面取出一个连接,和数据库交互。使用完的闲置的连接会回到连接池,等待下一次的调用。如果连接池里面没有闲置的连接,会自动创建一个新的连接出来。本文探讨Go连接MySql数据库too many connections的问题。 我要晨读
近期,Go Team 连续放出了几个大招来介绍即将在八月问世的 Go 1.5 这个划时代的版本。在这个版本中最主要的变化是移除了所有 C 代码——也就是人们常说的自举。本文介绍如何从源代码构建 Go 1.5 开发环境。 我要晨读
Go语言中采用的是隐式接口, 只要满足的接口的定义, 就可以当作接口使用。隐式接口的好处有很多,但是隐式接口会带来冲突问题。本文介绍如何解决Go语言中隐式接口的冲突问题。 我要晨读
函数的调用信息是程序中比较重要运行期信息,在很多场合都会用到(比如调试或日志)。Go语言 runtime 包的 runtime.Caller / runtime.Callers / runtime.FuncForPC 等几个函数提供了获取函数调用者信息的方法。本文主要讲述这几个函数的用法。 我要晨读
本文是一篇并发编程方面的入门文章,较全面的总结,以Go语言编写示例代码,内容涵盖:运行期并发线程(goroutines)、基本的同步技术(管道和锁)、Go语言中基本的并发模式、死锁和数据竞争、并行计算。 我要晨读
我们从大量的 go 用户中收集了有关于使用 defer 和 panic 的性能统计。不像其它的 APM/error 记录公司,我们的重点不是告诉你有一个问题,而是实际解决问题的方法。这就是为什么我们要使用 go。本文介绍 Go 语言的手工内存管理。 我要晨读
Go如何处理zip中的中文文件名?Go的标准库已经自带了zip的库,不过zip包在处理内部文件名时,默认是utf8编码的。对于Windows中文用户,生成和读取zip内部文件名默认是GBK编码的。因此,在处理涉及GBK的文件名时需要做一个转换。 我要晨读
Go和C如何共享内存资源:Go语言作为一个现代化的编程语言以及支持垃圾内存的自动回收特性(GC)。我们现在关注的是C语言返回的内存资源的自动回收技术。 我要晨读