Go语言并发与并行学习笔记(二)

Go语言并发与并行学习笔记(二) Go语言的并发和并行 不知道你有没有注意到一个现象,还是这段代码,如果我跑在两个goroutines里面的话: var quit chan int = make(chan int) func loop() { for i := 0; i < 10; i++ { fmt.Printf("%d ", i) } quit <- 0 } func main() { // 开两个goroutine跑函数loop, loop函数负责打印10个数 go loop() go l...阅读全文

CSDN博客 2014-03-25 21:54 yangzhengyi68

Go语言并发与并行学习笔记(一)

如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人。 Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。 以下是我入门的学习笔记。 首先,并行!=并发, 两者是不同的,可以参考:http://concur.rspace.googlecode.com/hg/talk/concur.html Go语言的goroutines、信道和死锁 goroutine Go语言中有个概念叫做goroutine, 这类似...阅读全文

CSDN博客 2014-03-25 21:53 yangzhengyi68

go语言windows上使用

1、下载go的zip文件。并且一定要把文件解压到c:\go目录下。 2、配置windows的高级环境变量。包括:GOROOT、GOOS、GOBIN、GOARCH。并且在path变量里面把c:\go\bin加入。以便可以在命令行直接运行go命令。 举例:我的机器: set GOARCH=386 set GOOS=windows set GOROOT=c:\go set GOBIN=%GOROOT%\bin set GOPATH=%GOROOT%;F:\workspace\goSample01; G...阅读全文

CSDN博客 2014-10-24 16:52 jklfjsdj79hiofo

在生成环境中使用 Go 语言两年的总结

在iron.io的生产环境使用Go语言两年后,我想分享我们的经验和感受。我们是第一批在生产环境中使用Go(Go语言)的公司之一,长久以来我们不知道该有怎样的预期,但到目前为止,很棒。 在之前发表的一篇文章从Ruby切换到Go中我谈了一些,但这次将更具细节一些,我们喜欢这门语言以及一路上我们学到的东西。介绍没有特定顺序,按下面这样: 性能表现(Performance)内存占用(Memory)并发性(Concurrency)可靠性(Reliability)部署(Deployment)天赋(Talen...阅读全文

Go vs Erlang

因为 云巴 系统对高并发、低延迟的需求,我们对各个语言、平台做了很多的调研比较工作。这自然就包括致力于开发高并发应用的 Go 和 Erlang。 并发 Go 对高并发的支持通过 goroutine 实现。goroutine 可以理解为轻量级的 线程(thread)。同一个 Go 应用创建的 goroutine 共享地址空间。 Erlang 的高并发通过轻量级 进程(process)实现,每一个进程都有独立的状态记录。 另外,使用 goroutine 要注意,goroutine 运行完毕后,占用的...阅读全文

Tiger's Blog 2014-10-27 Tiger_张虎

Go编程语言简介

go_tutorial Go编程语言简介 Updated Sep 23, 2010 by chaishus...@gmail.com 译者简介Hello,世界分号(Semicolons)编译Echo类型简介申请内存常量I/O包Rotting catsSorting打印输出生成素数Multiplexing 译者 原文:http://golang.org/install.html 翻译:柴树杉 (chaishushan@gmail.com) 翻译:Bian Jiang (borderj@gmail....阅读全文

CSDN博客 2013-11-17 20:19 summerhust

go学习链接

大牛学习Golang的资料整理: http://www.cnblogs.com/ghj1976/category/446360.html Win下Golang开发环境搭建相关文章: Win7下安装go1.1beta1 http://www.cnblogs.com/ghj1976/archive/2013/04/05/3001081.html Sublime Text 2下配置Go语言环境 http://www.cnblogs.com/ghj1976/archive/2013/03/20/2970...阅读全文

CSDN博客 2013-10-08 18:40 huayu0815

用go语言通过FTP库实现web日库自动上传归档

因为平时管理的web服务器都是VM服务器,为节省硬盘空间,一般给虚拟机分配的硬盘空间都比较小,只有8G,因为,保存不了多少日志,所以每天都需要把每台WEB日志转移到一个硬盘比较大的服务器上,然后再使用NBU集中备份,本程序主要使用go语言实现实现将web日志通过FTP自动上传FTP服务器,使用了filepath.Walk遍历日志目录及第三方纯go库“github.com/jlaffaye/ftp”,而日志VM本地存储路径格式是 /var/log/weblog/www.domainName.com...阅读全文

开源中国博客 2014-10-27 09:46 学思

Go语言 使用CGo进行优化

转载自达达的博客 前阵子我利用cgo对游戏内存数据库的数据存储方式做了优化,减少了对象数量。但是程序放到线上环境后出现了段错误,直接导致进程退出,只好临时又把优化的部分去掉,去掉后程序又继续稳定运行了两周。 优化代码撤下来后,我重新整理了代码。整理下来,我觉得对含有字符串字段的表的优化逻辑太过复杂了,并且很难控制边界情况。 这里举个例子: type MyTable struct { Name string } func InsertMyTable(myTable MyTable) { nameL...阅读全文

CSDN博客 2014-04-20 21:05 abv123456789

LiteIDE下设置GOPATH

Mac下安装Go开发环境可以借鉴之前我的博客:Mac下go语言环境的搭建 http://www.cnblogs.com/ghj1976/archive/2013/01/16/2863142.html 首先当前需要先设置GOROOT GOROOT 是Go安装包的根目录。通常是放在$HOME/go,当然也可以是其他位置。比如我这里Mac下默认是安装在/usr/local/go 下面了。 参考:https://code.google.com/p/golang-china/wiki/Install GO...阅读全文

博客园 2013-02-16 14:10 ghj1976

Go语言实现冒泡和快速排序

冒泡和快速排序都属于交换类排序,所谓交换排序是指借助数据元素之间互相交换进行排序的方法。 冒泡排序法 冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据的交换逐步将线性表变成有序。 冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。 即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。 在第二趟:...阅读全文

博客园 2013-02-15 22:11 ghj1976

Go语言里边的字符串和数组

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; go语言里边的字符串处理和PHP还有java 的处理是不一样的,首先申明字符串和修改字符串 [php] package main import "fmt" var name string //申明一个字符串 var emptyname string = "" //申明一个空字符串 func main() { //申明多个字符串并且赋值 a, b, v := "hello", "word", "wi...阅读全文

Go项目的目录结构

项目目录结构如何组织,一般语言都是没有规定。但Go语言这方面做了规定,这样可以保持一致性 1、一般的,一个Go项目在GOPATH下,会有如下三个目录: |--bin |--pkg |--src 其中,bin存放编译后的可执行文件;pkg存放编译后的包文件;src存放项目源文件。一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可。对于pkg目录,曾经有人问:我把Go中的包放入pkg下面,怎么不行啊?他直接把Go包的源文件放入了pkg中。这显...阅读全文

博客园 2014-10-26 10:59 ghgyj

go语言与所谓的包

import后面接的是目录的名字,而不是所谓包的名字,并且如果一个目录下面还有目录的话都必须要写进去,比如: import "MyPackage" import "MyPackage/MyInnerPackage" 在这里讲明白了import后面接的是目录名而不是文件名更不是所谓的包名,那么一个目录下面的文件可以是多个包的吗?不可以 package main import "MyPackage" import "MyPackage/MyInnerPackage" import "OtherPac...阅读全文

安装Go语言开发环境

安装Go语言开发环境实例代码 - 详述Go语言安装所在需要的工作:安装C语言工具,安装Mercurial,更新go到新版本等操作实例。 安装go环境 1、简介 Go是一个开源项目,采用BSD授权协议。 该文档介绍如何获取Go源代码,如何编译,以及如何运行Go程序。 目前有两种方式使用Go语言。这里主要讲述如何使用Go专用的gc系列工具 (6g、8g等)。另一个可选的编译器是 基于gcc后端的 gccgo编译器。关于gccgo的细节清参考安装并使用gccgo编译器 。 Go编译器可以支持三种指令集...阅读全文

Go语言简介

Go语言简介 - Go语言是由Google开发的一个开源项目,目的之一为了提高开发人员的编程效率。 Go语言简介 Go语言是由Google开发的一个开源项目,目的之一为了提高开发人员的编程效率。 Go语言语法灵活、简洁、清晰、高效。它对的并发特性可以方便地用于多核处理器和网络开发,同时灵活新颖的类型系统可以方便地编写模块化的系统。go可以快速编译, 同时具有垃圾内存自动回收功能,并且还支持运行时反射。Go是一个高效、静态类型, 但是又具有解释语言的动态类型特征的系统级语法。 下面是用go编写的"...阅读全文

Golang项目目录结构组织

其实golang的工程管理还是挺简单的,完全使用目录结构还有package名来推导工程结构和构建顺序。 当然,首先要说的是环境变量$GOPATH,项目构建全靠它。这么说吧,想要构建一个项目,就要将这个项目添加到$GOPATH中,多个项目用";"分隔。 Golang项目目录下一般有三个子目录: src存放源代码 pkg编译后生成的文件 bin编译后生成的可执行文件 我们重点要关注的其实就是src文件夹中的目录结构。 举个例子比啥都强,目录结构如下: <proj> |--<src> |--<a> |...阅读全文

走进 Google 的 Go 语言

摘要:本文整理自Google首席工程师Rob Pike的演讲Slide,主要讲述的了Go的部分设计原理和初衷,也有提到Go语言在Google内外的应用现状。但本文的目的更多的是关于软件工程而不是编程语言的设计,更准确地说是如何设计编程语言来帮助软件工程。 序言:关于Go Go语言是一个开源、并发、高效、简单、有趣(但对某些人来说可能很无聊)的编程语言,支 持垃圾回收(GC),具有很好的可伸缩性。Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson...阅读全文

CSDN博客 2012-11-02 16:19 cometwo