golang里channel的实现原理

channel是消息传递的机制,用于多线程环境下lock free synchronization. 它同时具备2个特性: 1. 消息传递 2. 同步 golang里的channel的性能,可以参考前一篇:http://blog.sina.com.cn/s/blog_630c58cb01016xur.html 此外,自带的runtime package里已经提供了benchmark代码,可以运行下面的命令查看其性能: go test -v -test.bench=".*" runtime 在我的...阅读全文

新浪博客 2012-11-15 23:41:08 funkygao

Go语言的国际化支持(基于gettext-go)

本文在 Golang中国博客 的地址: http://blog.go-china.org/07-gettext hello, world! 假设有以下的程序, 输出: “Hello, world!“. package main import ( "fmt" ) func main() { fmt.Println("Hello, world!") } 现在要让改程序支持不同语言的用户, 然后以本地语言输出相同意思的信息. 这就是很多程序面临的国际化问题. Go语言...阅读全文

开源中国博客 2014-01-07 07:54 chai2010

go语言总结

1.项目需要,学习GO 2.GO是谷歌出品,很多牛B很多吹捧,所以得学 3.从搭建环境开始: 因为习惯了win7+eclipse的开发方式,所以go的开发环境也用这样的组合 具体 http://blog.csdn.net/hengyunabc/article/details/7371446 里面说的很明白。 (http://bigasp.com/archives/594、http://rongmayisheng.com/post/windows下用eclipsegoclipse插件gdb搭建go...阅读全文

ITEYE博客 2014-04-18 09:17 sugongp

我第1个可用的golang小程序

为什么要写这个程序 寻找时间同步Api 编写同步程序 封装成windows service   为什么要写这个程序         一直在关注golang, 从2011年4月配置环境写了个hello world!(http://weibo.com/1409046677/wr4n3vdYFV), 后来没再动手写golang代码了, 只是关注golang方面的信息/资讯。去年到今年稍认真的看了一些golang的基础语法,然后前几天家里的台式电脑又开机用了一下,可能是bios电池没电的原因吧, 总...阅读全文

博客园 2014-04-24 13:08 net205

Golang 1.0 文档使用。godoc ,go 命令 学习 ,本地运行 gotour

首先要安装环境 参考:   http://toeo.iteye.com/blog/1470598   找了半天 没有 看明白 doc 的目录结构。   原来 doc 是web 展示的 !!!   本地 运行 web 版本 doc文档   输入      > godoc -http=:6060      然后在浏览器里面就可以看到了:     访问你的浏览器年 就有自己的一个 本地 文档中心了。   google go 毫不吝啬。golang.org 上面的文档相关东西都 本地化了。直接在w...阅读全文

CSDN博客 2013-03-04 15:54 freewebsys

关于golang中包(package)的二三事儿

golang的package和其他语言的组织方式完全不同,刚开始接触时,很不适应。 golang的package的特点: 1、go的package不局限于一个文件,可以由多个文件组成。   组成一个package的多个文件,编译后实际上和一个文件类似,组成包的不同文件相互之间可以直接引用变量和函数,不论是否导出;   因此,组成包的多个文件中不能有相同的全局变量和函数(这里有一个例外就是包的初始化函数:init函数,下面还有讨论) 2、go不要求package的名称和所在目录名相同,但是你最好保...阅读全文

博客园 2014-03-12 15:49 dajianshi

使用go build 进行条件编译

当我们编写的go代码依赖特定平台或者cpu架构的时候,我们需要给出不同的实现 C语言有预处理器,可以通过宏或者#define包含特定平台指定的代码进行编译 但是Go没有预处理器,他是通过 go/build包 里定义的tags和命名约定来让Go的包可以管理不同平台的代码 这篇文章将讲述Go的条件编译系统是如何实现的,并且通过实例来说明如何使用 1. 预备知识:go list命令的使用 在讲条件编译之前需要了解go list的简单用法 go list访问源文件里那些能够影响编译进程内...阅读全文

CSDN博客 2013-10-13 12:14 varding

mac上golang编译出现clang错误

错误现象 几周前,突然发现我的go 项目编译开始报一种以前从来没有出现过的错误: # runtime/cgo clang: warning: argument unused during compilation: '-pthread' # runtime/cgo clang: error: no such file or directory: 'libgcc.a' 需要说明下:我的开发机器是mac mini,系统当时是10.8.5, 上周升级为mavericks。 问题进一步探索 刚出现时我有...阅读全文

博客园 2013-11-08 12:45 yihuiso

golang的缓冲channel和无缓冲channel的区别

话说golang的channel同步的定义真是让人无力吐槽,码农的用户体验就这么难搞么,超耐磨阿,无缓冲和缓冲居然有这么大区别。。。。靠   转载一段网上的资料 -------------------------------------------------------------------------------------------------------------------------------------------------------- golang channel 有...阅读全文

博客园 2013-09-08 11:59 ziyouchutuwenwu

golang中map的值引用问题

先给出一个例子   package mainimport (    "fmt")type string_map map[string][]stringfunc main() {    map1 := make(string_map)    map1["one"] = []string{"one"} //先赋值    one := map1["one"]            //把赋值的映射使用一个变量表示    one = []string{"two"}         //给这个变量赋另...阅读全文

博客园 2013-06-11 09:58 ssor

睡眠排序--go实现

一次偶然的机会看见了睡眠排序,很有意思的一种排序算法,可以说是对我们熟悉的正规排序的一种挑战,是思想上的突破,有点像脑筋急转弯。使用睡眠排序算法,只能按照从小到大的顺序排列。打印数组中的数据时,按照其大小sleep,这样,数越大sleep的时间也就越长。所有的数同时进入sleep状态,数比较小的会提前打印出来。近期使用的都是GO语言,对其并发也有了些许理解,所以,使用go语言来实现这种排序,是很不错的选择。 // test project main.go package main import...阅读全文

CSDN博客 2013-03-01 16:12 lxy15329

go语言 Hello World

go语言是google发布的编程语言,已经有了第一个正式版本 go编译速度很快,是编译型语言 hello.go package main import "fmt" func main() { fmt.Printf("Hello,World!") }运行结果: package main 是指go文件的开头标志 import "fmt" I/O库,是将fmt库加载到文件中来 func main() go程序执行的第一个函数 fmt.Printf fmt库中的输出语句阅读全文

CSDN博客 2012-04-11 14:54 chuangrain

学习go语言

在je上看见帖子,google出了go语言,跟着贴子看来一圈也没看明白什么意思,实例程序看着到是挺简单,但是不知道怎么运行,运行环境在哪弄,也看有人写了go的一个程序,看来也没有看懂怎么运行。希望关注go的朋友多交流一下,也请高手指导指导我们这些初级程序员,接触了写语言,都是接触的不深,现在go刚出来,我想这次能够学的扎实一点。如果有写了go程序的,请跟大家分享一下,开发工具啊,安装上的问题,以及如何运行等,感谢分享知识的所有人阅读全文

ITEYE博客 2009-11-14 13:22 horseroad

go语言 环境搭建

最经对google的go非常感兴趣,花了几天的时间小小的研究下。现在作为一个初级小菜遇到的一些问题进行整理,希望对go感性的同学有所帮助。     1、ubuntu下go环境搭建     具体环境参数:Ubuntu 12.04   go1.0.2     官方安装文档地址:http://code.google.com/p/golang-china/wiki/Install     注意就是要依次安装好依赖的东西,如果缺少什么依赖的包,根据提示到网上一般都可以解决掉。     配置上需要...阅读全文

开源中国博客 2012-08-11 15:34 Hero_Q

golang--监控goroutine异常退出

在golang中,我们可以很轻易产生数以万计的goroutine,不过这也带来了麻烦:在运行中某一个goroutine异常退出,怎么办? 在erlang中,有link原语,2个进程可以链接在一起,一个在异常退出的时候,向另一个进程呼喊崩溃的原因,然后由另一个进程处理这些信号,包括是否重启这个进程。在这方面,erlang的确做得很好,估计以后这个特性会在golang中得到实现。 由此得到启发,我写了一个简单的程序,监控goroutine异常退出。 package main import ( ...阅读全文

博客园 2013-03-29 13:23 getong