golang sync WaitGroup

刚才看golang的sync的包,看见一个很有用的功能。就是WaitGroup。 先说说WaitGroup的用途:它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。 WaitGroup总共有三个方法:Add(delta int),Done(),Wait()。简单的说一下这三个方法的作用。 Add:添加或者减少等待goroutine的数量 Done:相当于Add(-1) Wait:执行阻塞,直到所有的WaitGroup数量变成0 ...阅读全文

CSDN博客 2014-05-06 20:18 u011511092

golang 环境搭建

操作系统 ubuntu 12.04 64 位 1. 配置编译环境 Go工具链采用C语言编写,需要安装以下开发工具 $ sudo apt-get install bison gcc libc6-dev ed gawk make 2.安装Mercurial工具 Mercurial是一种轻量级分布式版本控制系统,采用Python编写。 首先安装Python $ sudo apt-get install python2.7 $ sudo apt-get install python-a...阅读全文

CSDN博客 2012-12-22 16:02 icePhone

golang并发编程实践 -- 简单生产者消费者(with lock)

上一篇文章用golang中的channel实现了简单的消费者模型,下面的版本是用传统的锁技术实现的版本,相对比会发现golang提供的channel更好用。而且golang的channel可以完成很多在别的语言里需要很多代码才能实现的功能。以后陆续解答。 package main import ( "fmt" "sync" "time" ) type Queue struct { Elem []int Capacity int Front int Rear...阅读全文

CSDN博客 2012-12-24 23:01 aura521521

windows下用golang连接mssql

我擦,最近下了几十个G的数据(哈哈,你们懂的),都是mssql格式的,需要处理下。想用golang处理,于是就需要golang连接mssql。 1.安装Microsoft SQL Server Native Client 去官方下载吧,下载地址: http://www.microsoft.com/zh-CN/download/details.aspx?id=35580 2.安装golang的mssql驱动 go get code.google.com/p/odbc 3.写测试代码: pac...阅读全文

CSDN博客 2013-11-25 14:21 ijibu

golang面向对象总结

type $name struct{ property01 int property02 int } Golang里面的方法和接口都是基于这里type *** struct创建的类型,这里其实可以理解为: class $name { public int property01; public int property02; } 类型就是类。 所以我们说是类型的某个方法,类型实现了某个接口。     类型是属性的集合,接口是方法的集合    函数的定义:func     ...阅读全文

CSDN博客 2013-04-22 20:12 shencejun

在golang里实现类似try catch 的异常处理机制

本文出自: http://golang.so/ 此文介绍的并非 使用panic/recover. 因为实际使用中不建议使用panic/recover.  但try catch finally 的编程方式 还是会经常用到的。 代码如下: package main    import (    "fmt"    "runtime"    "os" )       // Try to open a file named dummy.one    // for input. Return the ...阅读全文

CSDN博客 2013-08-20 19:48 anothersea

菜鸟学go之变量(-)

//1.变量 //go语言中变量变量的定义方式是变量名前加var,与c和java不同,go把变量类型放到变量名称后面 //比如定义一个变量名字叫做bird类型为type的变量如下所示 var bird type //还可以在变量后一次性定义多个变量 var bird,cat,dog type //定义变量并且对多个变量进行初始化 var bird,cat,dog type = valone,valtwo,valthree //简写方式 //var可以简写为:并且放在变量的最后形如:  bird,...阅读全文

开源中国博客 2014-05-20 16:00 范思哲思考者

Idea golang "can’t find import" 解决方法

如题,在使用leveldb go wrapper levigo 的时候,本地安装好levigo后,通过命令行编译代码正常并能work,但在Idea中使用时出现: can't find import "github.com/jmhodges/levigo" 参考 https://github.com/mtoader/google-go-lang-idea-plugin/issues/159 我是这么解决的:分别创建源码和.a文件所在目录的软连接: 其中 /home/fun/software/g...阅读全文

博客园 2013-08-24 15:11 AndreMouche

windows下go编码转换问题

github上有两个package做编码转换,都是基于iconv,用到了cgo,在linux下没有问题,在windows下用,非常麻烦。采用mingw安装libiconv也不行,一直提示找不到libiconv方法。 最终找到一个官方实现(纯go实现): https://code.google.com/p/go/source/checkout?repo=text gbk转utf-8示例: func gbk2utf8(str byte[]) ([]byte, error) { re...阅读全文

开源中国博客 2014-06-06 09:16 程序员Jack

golang微信公众平台之人脸识别

转自:http://www.cnblogs.com/wlts/archive/2013/06/02/3113526.html  好吧,其实整个都是建立在face++的基础上的,没有任何技术含量,我只是个勤劳的搬运工。 所能实现的就是简单的,你发送一个图片过来,如果里面是一个人,则告诉你分析出来的年龄、性别;如果是两个人,就告诉你,这两个人眉毛、眼睛、鼻子、嘴巴及整体的相似度。 微信公众平台,怎么说呢,还是传统的一问一答的形式,你发个信息过来,我收到了处理下,再给你回馈一条信息,就是这么简单。...阅读全文

博客园 2013-06-02 15:45 likai198981

golang 1.2.1在生产环境中应用应该注意的问题

golang 1.2.1的GC因为算法的问题,在实际应用过程中,对于长时间运行的daemon程序,确实很容易导致内存泄露,有人用cgo来手动管理内存,也有人用pool来管理buffer,这些都很麻烦,还是等1.3发布吧,在 golang 1.2.1中,如果注意一些坑,还是很容易写出稳定运行的程序。 1. 避免递归; 2.在for里面,把一些每次重复的操作提到外面,比如包的init方法中执行, 这些不必多说,比如初始化一个数据库连接,regexp.Compile等; 3. 函数返回,对于slice...阅读全文

CSDN博客 2014-03-27 13:54 u013834131

golang安装手札

首先,请允许我说句脏话:Fuck you, GFW. 现在安装golang是一件麻烦的事情,因为Google悲剧了,我们无法从Golang的官网上下到源代码。而我的Ubuntu通过apt-get安装到的是1.0.2版本,编译一个开源项目时,会报sync.Pool未定义。虽然可以下载到开源项目的X86版本,但我的最终目的是在Arm上运行,因此我需要从源代码编译。 1. 找源代码 golang.org上不去,借用同事的国外代理搞到了go1.3.1.src.tar.gz,解压,编译,果断继续悲剧!看了...阅读全文

CSDN博客 2014-09-24 13:34 coroutines

golang微信公众平台之人脸识别

好吧,其实整个都是建立在face++的基础上的,没有任何技术含量,我只是个勤劳的搬运工。 所能实现的就是简单的,你发送一个图片过来,如果里面是一个人,则告诉你分析出来的年龄、性别;如果是两个人,就告诉你,这两个人眉毛、眼睛、鼻子、嘴巴及整体的相似度。微信公众平台,怎么说呢,还是传统的一问一答的形式,你发个信息过来,我收到了处理下,再给你回馈一条信息,就是这么简单。 简单的你来我往 先说信息互传的问题,微信公众平台是post过来一个xml,服务器端打包一个xml发回去。 从最简单的,直接把用户信息...阅读全文

博客园 2013-06-02 09:25 wlts

golang实现AT命令的发送(Windows版)

问题的提出 由于golang的微线程(goroutines)的特征,实现同时交互进行的任务变得自然而容易。一直想实现一个能对手机进行自动发送AT的程序,而实现相应的自动化测试。现在用golang来偿试一下。 问题所依赖的库 使用golang来实现的对串口的操作的库从网上找到了一个,就不用重新发明轮子啦。https://github.com/huin/goserial 在Windows下使用的文件如下:     serial.go /* Goserial is a simple go pack...阅读全文

CSDN博客 2012-11-15 10:58 huangliujing