1. 首页
  2. jouyouyun的收藏

进一步认识golang中的并发

如果你成天与编程为伍,那么并发这个名词对你而言一定特别耳熟。需要并发的场景太多了,例如一个聊天程序,如果你想让这个聊天程序能够同时接收信息和发送信息,就一定会用到并发,无论那是什么样的并发。 并发的意义就是:让一个程序同时做多件事情! 理解这一点非常重要,是的,并发的目的只是为了能让程序同时做另一件事情而已,并发的目的并不是让程序运行的更快(如果是多核处理器,而且任务可以分成相互独立的部分,那么并发确实可以让事情解决的更快)。记得我学C++那时候开始接触并发,还以为每开一个线程程序就会加速一...阅读全文

2014年04月28日 22:24 u011774512
阅读:6625 评论:3 2人喜欢

[翻译]十条有用的 Go 技术

原文在此,实用总结。 ————翻译分隔线———— 十条有用的 Go 技术 这里是我过去几年中编写的大量 Go 代码的经验总结而来的自己的最佳实践。我相信它们具有弹性的。这里的弹性是指: 某个应用需要适配一个灵活的环境。你不希望每过 3 到 4 个月就不得不将它们全部重构一遍。添加新的特性应当很容易。许多人参与开发该应用,它应当可以被理解,且维护简单。许多人使用该应用,bug 应该容易被发现并且可以快速的修复。我用了很长的时间学到了这些事情。其中的一些很微小,但对于许多事情都会有影响。所有这些都仅...阅读全文

2014年07月24日 mikespook
阅读:4934 评论:3 2人喜欢

Go语言 你可能不知道的十个技巧

1. 匿名结构体 全局组合 1 2 3 4 5 var config struct {//定义一个用于全局配置结构体 APIKey string OAuthConfig oauth.Config } config.APIKey = "BADC0C0A" 数据模板 1 2 3 4 5 6 7 8 data := struct {//匿名结构体的定义 Title string Users []*User }{//同时初始化 title, users, } err := tmpl.Execute(w,...阅读全文

2014年04月20日 20:31 abv123456789
阅读:13301 评论:1 4人喜欢

golang使用pprof检查goroutine泄露

有一段时间,我们的推送服务socket占用很不正常,我们自己统计的同时在线就10w的用户,但是占用的socket竟然达到30w,然后查看goroutine的数量,发现已经60w+。 每个用户占用一个socket,而一个socket,有read和write两个goroutine,简化的代码如下: c, _ := listerner.Accept() go c.run() func (c *conn) run() { go c.onWrite() c.onRead() } func (c *conn...阅读全文

2014年04月22日 10:58 siddontang
阅读:3985 评论:0 0人喜欢