Go语言中文网 为您找到相关结果 362

CentOS 7.0 安装go 1.3.1

1.下载go安装包 golang中国上下载 2. 解压 tar -zxf go1.3.1.linux-amd64.tar.gz -C /usr/local/ 3. 修改 etc/profile 文件在文件后加入 export的几行,在unset下面直接加,不要有空行 4. 然后执行 source /etc/profile 刷新配置文件 5. 运行命令 go 测试go是否安装成功 6. 在usr/local/go/test 下 运行 go run helloworld.go 测...阅读全文

博文 2015-06-10 03:00:05 weixiaole

贝程:Golang快速入门到综合实战

身为技术员,在追求高薪的路上,我们从未停歇,而了解企业需求增长最快的技术领域,并迅速掌握解锁各种新技术,是我们的最佳加薪法宝。最近几年Go语言技术迅速蹿红,美国程序员招聘网站Hired发布《2019软件工程师状态》报告中显示,基于市场供需,Go语言使用者目前最受招聘市场欢迎,原因在于GO语言在业界的使用频率越来越高,国外的Google、AWS、Cloudflare等,国内阿里、知乎等都已经大规模用Go语言开发相关产品,知乎还舍弃了Python,用Go重构推荐系统。 在谈到区块链时,大家第一时间想到的技术也一定是Go语言技术,它被称为区块链公链开发最佳编程语言,是目前区块链开发工程师必须掌握的技能。打开招聘网站,区块链开发工程师的工资总是能亮瞎我们的眼,我们一边眼馋,一边蠢蠢欲动,看到了趋势,...阅读全文

博文 2019-11-05 19:32:48

golang判断字符串是否含中文

一个使用unicode判断, 一个是正则判断。 结论,使用IsChinese unicode判断,效率更高。 func IsChinese(str string) bool { var count int for _, v := range str { if unicode.Is(unicode.Han, v) { count++ break } } return count > 0 } func IsChineseChar(str string) bool { for _, r := range str { if unicode.Is(unicode.Scripts["Han"], r) || (regexp.MustCompile("[\u3002\uff1b\uff0c\uff1a\u...阅读全文

博文 2020-04-02 09:33:01 百里江山

Golang标准库深入 - 锁、信号量(sync)

概述 sync包提供了基本的同步基元,如互斥锁。除了Once和WaitGroup类型,大部分都是适用于低水平程序线程,高水平的同步使用channel通信更好一些。 本包的类型的值不应被拷贝。 虽然文档解释可能不够深入,或者浅显易懂,但是我觉得还是贴出来,对比了解可能会更好。 Go语言中实现并发或者是创建一个goroutine很简单,只需要在函数前面加上"go",就可以了,那么并发中,如何实现多个goroutine之间的同步和通信?答: channel 我是第一个想到的, sync, 原子操作atomic等都可以。 首先我们先来介绍一下sync包下的各种类型。那么我们先来罗列一下sync包下所有的类型吧。 1. Cond 条件等待 type Cond struct { // L is held...阅读全文

博文 2018-05-17 23:33:04 90design

linux安装go语言的方式

今天折腾了一天的VPS,装了HHVM、FTP,装不成功VPN。 GO语言也安装完成了,但中途也遇到一些问题,主要还是英文的问题,所以说学计算机的人啊,必须先学好英语。 本文首发于:http://www.zzzzy.com/201411023370.html 言归正传,golang.org作为一个技术的官网,居然被墙了。天朝不会凡谷歌的东西都要墙掉吧?呵呵。 首先肯定是下载资源包了,链接汇总在http://www.golangtc.com/download,我用的是 http://www.golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz 这个版本的镜像地址。 按照说明cd 进入 /usr/local 目录,然后执行 wget -c htt...阅读全文

博文 2014-11-02 22:00:01 Skiychan

golang使用正则表达式使用

例1:package main import ( "fmt" "regexp" ) func main() { s1 := "Z22WhkC9K$N#wRIbBitpQYUFJqd%d*QVz5Ir7j&CLqz3@FOC2x5CD6ZzvhNdk@5Vv1QU^DHbSc&nBs%4!94ngFH0BJ6GxtXg2$T" reg := regexp.MustCompile(`[^a-zA-Z0-9]`) fmt.Println(reg.FindAllString(s1, -1)) reg = regexp.MustCompile(`[a-zA-Z0-9]`) fmt.Println(reg.FindAllString(s1, -1)) reg = regexp.MustCompile(`...阅读全文

博文 2019-07-30 14:34:45 xingzhehxiang

golang中读写锁RWMutex和通用锁Mutex的使用

golang中sync包实现了两种锁Mutex (互斥锁)和RWMutex(读写锁),其中RWMutex是基于Mutex实现的,只读锁的实现使用类似引用计数器的功能. type Mutex func (m *Mutex) Lock() func (m *Mutex) Unlock()type RWMutex func (rw *RWMutex) Lock() func (rw *RWMutex) RLock() func (rw *RWMutex) RLocker() Locker func (rw *RWMutex) RUnlock() func (rw *RWMutex) Unlock() 其中Mutex为互斥锁,Lock()加锁,Unlock()解锁,使用Lock()加锁后,便不能再次...阅读全文

博文 2017-03-05 06:03:01 skh2015java

golang fmt.printf I/O 函数格式化说明

[TOC] 说明 fmt 包实现了格式化 I/O 函数,类似于 C 的 printf 和 scanf格式“占位符”衍生自 C,但比 C 更简单 常用格式化输出 fmt.Printf("start at number %v, end count %v\n",start, count) 注意参数输出数量和占位符数量要一致 IDEA开发快速格式化模板 使用IDEA开发可以配置自定义代码模板快速生成 Settings -> Editor -> Live Templates 选中 go 语言展开 选则增加一条 Abbreviation 填写 fpf Description 填写 print fmt format Template text fmt.Printf("$END$",$VAR$) Appli...阅读全文

博文 2017-03-05 19:34:39 泛原罪

ElasticHD:ElasticSearch Dashboard Go Application. 【工具、无需安装】

ElasticHD:ElasticSearch Dashboard Go ApplicationElasticHD 是一款 ElasticSearch的可视化应用。不依赖ES的插件安装,更便捷;导航栏直接填写对应的ES IP和端口就可以操作Es了。目前支持如下功能: ES Real time data search ES Dashboard data visualization ES Index Template (在线修改、查看、上传) ES Indices Index deletion and search SQL Converts to Elasticsearch DSL ES 基本查询文档 Downloads ElasticHD【Precompiled binaries】 for s...阅读全文

博文 2017-06-17 12:38:18 farmerx

golang 中的 regexp 包

正则语法 google/re2 Printf 语法 几个函数方法 名称 说明 备注 Match 验证正则表达式是否匹配 []byte - MatchString 验证正则表达式是否匹配 string - FindAllString Regexp的方法,匹配字符串,返回匹配结果组成一个 []string。限定参数 -1表示不限定,其它表示限定。 - FindAllStringSubmatch Regexp的方法,返回一个 [][]string - 示例 MatchString func MatchString(pattern string, s string) (matched bool, err error) matched, err := regexp.MatchString("foo.*...阅读全文

博文 2017-07-09 06:03:51 中柠檬

golang 读写文件(一)

使用os的方式(会重写文件) package main import ( "fmt" "os" "time" ) func main() { f, err := os.OpenFile("/tmp/logs/test.log", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777) //linux 路径 /*f, err := os.OpenFile("D:/tmp/logs/test.log", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)*/ //windows路径 if err != nil { fmt.Printf("open err%s", err) return } defer f.Close() //资源必须释放,函数...阅读全文

博文 2016-07-29 10:00:01 wtf0215-golang

go源码阅读笔记(math.4)

go源码阅读笔记(math.4) 参考godoc API API列表 func NaN() float64 函数返回一个IEEE 754“这不是一个数字”值。 func IsNaN(f float64) (is bool) 判断f是否是NaN值 func Inf(sign int) float64 如果sign>=0返回正无穷大,否则返回负无穷大 func IsInf(f float64, sign int) bool 判断其是否是无穷大数 func Float32bits(f float32) uint32 函数返回浮点数f的IEEE 754格式二进制表示的值对应的4字节无符号整数(每位值不变)。主要是用于位运算之类的,转换成无符号整数,这样不会使用浮点运算器,速度快 func Float...阅读全文

博文 2016-04-05 00:00:00 qq_15437667

go实现爬取href链接

刚开始爬取的时候是用正则表达式实现的,然后爬取了不必要的链接,现在改用goquery实现: // judgeUrl project judgeUrl.go package judgeUrl import ( "strings" ) func IsUrl(str string) bool { if strings.HasPrefix(str, "#") || strings.HasPrefix(str, "//") || strings.HasSuffix(str, ".exe") || strings.HasSuffix(str, ":void(0);") { return false } else if strings.HasPrefix(str, "{") && strings.HasS...阅读全文

博文 2016-02-18 22:00:00 u011466175

安装Golang 1.6及开发环境

安装Golang 1.6及开发环境=====================================> 下载软件 * go1.4.2.linux-amd64.tar.gz * go1.6.2.linux-amd64.tar.gz * liteidex29.linux-64-qt4.tar.bz2 * libpng-1.2.56.tar.xz: http://nchc.dl.sourceforge.net/project/libpng/libpng12/1.2.56/libpng-1.2.56.tar.xz 注意: Golang1.5+自举构建,执行src/all.bash需要$HOME/go1.4/bin/go > 安装步骤 * 安装go1.4 - 解压重名: tar -zvxf g...阅读全文

博文 2016-05-03 03:00:01 zolo

今日头条推荐系统架构设计实践

互联网时代内容分发的变革​今日头条本质上是一个强大的智能推荐引擎​数据截止于:截至2016年12月底头条DAU : 7800w ;头条MAU : 1.75亿;单用户日平均使用时长: 76分钟;用户行为峰值: 150w+ msg/s;每天训练数据: 300T+ (压缩后) ;机器规模:万级;系统架构​面临挑战期望快速反馈: 10min内;feature数量: 200+;存量用户数和每天的用户行为数据量巨大;在线存储:读写吞吐高,要求延时低且可预期;流式计算实现Storm Python框架写MR的方式写Streaming Job ;Topology用Yaml描述,代码自动生成,降低编写job成本;框架自带KafkaSpout ,业务仅关注拼接和计算逻辑;Batch MR相关算法逻辑可以直接复用在...阅读全文

博文 2019-07-25 14:05:33 wyygxly

mac下Sublime text2的搭建

问题一:Mac OS怎么保存修改后的GOPATH的??我修改了,但是保存不了; 问题二:为什么调用math包或者自己写的包会找不到,sublim text显示如下:cannot find package "myMath" in any of: /usr/local/go/src/myMath (from $GOROOT) /Users/XYQ/Desktop/code_go/src/myMath (from $GOPATH) 本人是菜鸟,刚接触golang,请各位有经验的大神解...阅读全文

Kubernetes Pod无法挂载ceph RBD存储卷的临时解决方法

所有涉及到存储的地方都是极易出现“坑”的地方,Kubernetes也不例外。 一、问题起因 问题始于昨天升级一个stateful service的操作。该service下的Pod挂载了使用ceph RBD提供的一个Persistent Volume。该Pod是用普通deployment部署的,并没有使用处于alpha状态的PetSet。改动仅仅是image的版本发生了变化。我执行的操作如下: # kubectl apply -f index-api.yaml 操作是成功的。但命令执行后,再次查看index-api这个Pod的状态,该Pod的状态长期处于:“ContainerCreating”,显然Pod没能重启成功。 进一步通过describe pod 检视events,发现如下Warnin...阅读全文

博文 2017-05-01 14:35:01 bigwhite

golang 互斥锁和读写锁

golang 互斥锁和读写锁 golang中sync包实现了两种锁Mutex(互斥锁)和RWMutex(读写锁),其中RWMutex是基于Mutex实现的,只读锁的实现使用类似引用计数器的功能。 type Mutex func (m *Mutex) Lock() func (m *Mutex) Unlock() type RWMutex func (rw *RWMutex) Lock() func (rw *RWMutex) Unlock() func (rw *RWMutex) RLock() func (rw *RWMutex) RUnlock() func (rw *RWMutex) RLocker() Locker 1、互斥锁 func (m *Mutex) Lock():加锁,Un...阅读全文

博文 2018-01-20 08:30:00 singhamxiao

MacBook Pro 2019 13寸 体验

因 最近一年加入创业团队,几乎整个团队都用 mbp,使用 windows 有点不合群。而且团队很多项目配置和软件使用都是针对 MacOS。 研发方向转变:golang 和 python,语言跨平台,感觉 MacOS 研发效率更高。 MacOS 自带原生的类 unix 系统,命令使用更方便了。虽然 win10 也出了 wsl 和 windows terminal,折腾了一段时间,感觉小问题还不少。 很多时候,花钱购买的是生产力,相信 apple 在很多细节方面做得比其它品牌更好。 追求极致,获得更好的体验,这是应该是大部分研发人员的自带属性。 装 13 mbp 配置 电子产品更新换代很快,根据以往经验,配置高的生命周期更长。2w 多,家里没矿,一次性付款买个本子有点割肉的感觉。支付宝竟然有免息...阅读全文

Golang 共享内存

Golang语言中,进程间通信除了使用channel,还可以使用共享内存,即sync包。 Q-1 package main import ( "fmt" "time" ) func main() { for i := 1; i < 6; i++ { go func(x int) { time.Sleep(time.Second) fmt.Println("第", x, "个子goroutine执行结束") }(i) } fmt.Println("主goroutine执行结束") } 上面的代码毫无疑问的只会输出:“主goroutine执行结束”,而不会输出子goroutine执行结束,这是因为,主协程一旦执行完毕,整个进程就会结束。 sync组等待 sync包中常用的有三个方法:Add(nu...阅读全文

博文 2018-06-07 15:30:02 -beyond

【武汉】楚易唯增招一名golang 地铁口旁 晋升空间大 找工作快来点我!欢迎大家转发介绍小伙伴

武汉楚易唯网络科技有限公司招聘啦! 增招一名中高级Golang开发工程师 --------------------------------------------------------------------------------------------------------------------- 高级golang开发工程师(10k-20k)(视专业技能和工作经验可面谈) 任职要求: 1、具有良好的团队合作精神,有较强的开发能力和灵活性; 2、开发经验丰富,熟悉golang语言,基础扎实,2年以上golang开发工作经验,有完整的项目经验 ; 3、精通Golang协程,精通channel和锁,对高并发、高可用架构系统有正确、深刻的理解,要求有分布式服务...阅读全文

Golang解析xml

golang解析xml到struct func Xml() { xmlDoc := ` Tove Jani Reminder Don't forget me this weekend! ` type xmlStruct struct { XMLName xml.Name `xml:"note"` To string `xml:"to"` From string `xml:"from"` Heading string `xml:"heading"` Body string `xml:"...阅读全文

博文 2020-04-11 13:32:42 是个懒人

你不得不知道的sync.Map源码分析

sync.Map源码分析 背景 众所周知,go普通的map是不支持并发的,换而言之,不是线程(goroutine)安全的。博主是从golang 1.4开始使用的,那时候map的并发读是没有支持,但是并发写会出现脏数据。golang 1.6之后,并发地读写会直接panic: fatal error: concurrent map read and map write package main func main() { m := make(map[int]int) go func() { for { _ = m[1] } }() go func() { for { m[2] = 2 } }() select {} } 所以需要支持对map的并发读写时候,博主使用两种方法: 第三方类库 conc...阅读全文

博文 2018-06-10 19:34:36 梦朝思夕

go 官方版本的日志模块为什么加锁那么多

看了下go的log模块代码,写一条日志的做法是 1,拼接日志内容 2,加锁 3,写文件 4,解锁。 这个做法在协程很多的情况下,效率比较低。 官方为啥没有提供一个高效率的版本呢? 我自己撸了一个,也就200多行代码(https://github.com/Titanarthas/s_g_log) 对比测试了下,50000个协程,每个协程写11条日志。 官方版本的log耗时是6秒多,我自己写的版本是2.4秒,也没发现我的实现有啥问...阅读全文

golang之正则校验

Go语言中使用正则校验需要用到 regexp 包 先介绍几种常用的方法: 1、 使用MatchString函数 regexp.MatchString(pattern string, s string) pattern为正则表达式,s为需要校验的字符传 例: match,_:=regexp.MatchString("p([a-z]+)ch","peddach") 返回的第一个参数是bool类型即匹配结果,第二个参数是error类型 fmt.Println(match) //结果为true 2、使用 Compile函数或MustCompile函数 它们的区别是Compile返回两个参数*Regexp,error类型,而MustCompile只返回*Regexp类型 func Compile(ex...阅读全文

博文 2016-11-22 01:00:02 skh2015java

网络安全 - 制作免杀

介绍:之前使用 小七免杀工具包 来作免杀(有空我会上传到网盘上),就是对PE(.bat、.exe这类)文件中出现的特征码进行替换修改,修改方法:等价替换指令,字符串修改大小写等。 现在开源的东西比起手工,免杀率高,速度快,功能多。下面我就介绍下 Hercules 工具: 一、安装 Kali Linux 二、搭建GO语言环境 1、下载解压GO 解压到 /usr/local 目录下: 2、配置环境 让GO命令有效: 文件后追加 export PATH=$PATH:/usr/local/go/bin: 再按 Esc ,输入 :wq,保存退出。使文件生效,并查看版本号,是否正确配置: 三、安装Hercules 升级软件包: 运行Hercules: 四、生成免杀载荷 选择1,输入ip、端口号(用于反弹...阅读全文

博文 2017-06-09 05:05:42 alexnevsky

golang配置oci8所遇到问题解决

新建文件夹 mingw 将 MinGW.zip 解压到mingw目录下,进入mingw\lib目录下 新建文件夹pkg-config 执行命令 go get github.com/wendal/go-oci8将github.com\wendal\go-oci8\windows文件夹下的oci8.pc文件拷贝到当前pkg-config文件夹下并修改文件内容如下 ### 异常总结1 当报该异常时,请升级golang的编译版本,该方法需要1.8版本 gopkg.in\kataras\iris.v6\response_writer.go:65: undefined: http.Pusher 2 当报该异常时,是本地oracle客户端版本不匹配,可以下载一个对应的 C:/mingw/bin/..b/g...阅读全文

博文 2017-10-12 06:30:01 count-mjb

Go语言:正则表达式的使用

Go语言的正则表达式使用很简单,示例代码: package test import ( "fmt" "regexp" ) func RegixBase() { //findTest() //findIndexTest() //findStringTest() //findChinesString() //findNumOrLowerLetter() findAndReplace() } //传入[]byte,返回[]byte func findTest() { str := "ab001234hah120210a880218end" reg := regexp.MustCompile("\\d{6}") //六位连续的数字 fmt.Println("------Find------") //...阅读全文

博文 2015-06-17 23:00:50 books1958

【Go】 格式处理

格式化字符串 在golang里面获取时间戳并不难。只要加载time包。time.Now().Unix() fmt.Sprintf("%d",int64),自此,go语言的int转换成string有3种方法 1、int32位,strconv.Itoa2、大于32位,strconv.FormatInt()3、万恶的fmt.Sprintf...好吧,这个我在php里是经常用来做格式化 引入strings包 strings.contains() index() indexany() indexFunc() 正则表达式 DFANFABacktrackin...阅读全文

博文 2015-07-06 03:00:00 viewcozy

go的protobuffer安装

windows环境下: 1.首先,必须先的有go,默认安装在了C:\Go 2.然后下载protoc,https://code.google.com/p/protobuf/downloads/list,下一个二进制文件即可,为了方便,可以直接放到C:\GO\bin里面 3.配置GOPATH,这个就是你go工程的地方,应该早配置好了,比如D:\project\xxx 4.cmd里运行go get -u code.google.com/p/goprotobuf/{proto,protoc-gen-go},貌似win下面比较坑,会报错,所以可以分开输入go get -u code.google.com/p/goprotobuf/proto和go get -u code.google.com/p/go...阅读全文

博文 2014-10-23 14:00:01 esrrhs

linux下安装Go

1 下载安装包 go1.5.linux-amd64.tar.gz 2 在linux下找一个目录进行解压 tar zxf go1.5.linux-amd64.tar.gz 3 编辑文件/etc/profile,在结尾添加 export GOROOT=/home/test/Go/go export PATH=$GOROOT/bin:$PATH export GOPATH=/home/test/Go/go-project 4 执行source /etc/profile,使修改生效 5 执行go version,查看是否安装成功...阅读全文

博文 2015-08-28 11:00:03 榴火

golang 格式化输入输出

fmt 包实现了格式化 I/O 函数,类似于 C 的 printf 和 scanf。格式“占位符”衍生自 C,但比 C 更简单。 【打印】 占位符: [一般] %v 相应值的默认格式。在打印结构体时,“加号”标记(%+v)会添加字段名 %#v 相应值的 Go 语法表示 %T 相应值的类型的 Go 语法表示 %% 字面上的百分号,并非值的占位符 [布尔] %t 单词 true 或 false。 [整数] %b 二进制表示 %c 相应 Unicode 码点所表示的字符 %d 十进制表示 %o 八进制表示 %q 单引号围绕的字符字面值,由 Go 语法安全地转义 %x 十六进制表示,字母形式为小写 a-f %X 十六进制表示,字母形式为大写 A-F %U Unicode 格式:U+1234,等同于 ...阅读全文

博文 2015-12-22 12:00:05 zhangxing__

Go 博客平台 Pipe 1.6.0 发布,支持 sitemap

[Pipe](https://github.com/b3log/pipe) 是一款小而美的开源博客平台,使用 golang、Vue.js 编写。 v1.6.0 主要是支持了 sitemap 和 RSS 输出。 关于**独立账号体系**的特性正在通过社区进行投票,欢迎大家[前来支持](https://github.com/b3log/pipe/issues/117)! ### 安装 [下载](https://pan.baidu.com/s/1jHPtHLO)最新的 Pipe 包解压,进入解压目录直接运行 pipe/pipe.exe 可执行文件即可。 从 1.5.0 升级只需将已有的配置拷贝覆盖即可,启动后会自动升级。 ### 文档 * [Pipe 用...阅读全文

通过leetcode学习位运算及其Go实现

问题描述 461. Hamming Distance即求两个正整数的二进制对应位数不同的个数 原理说明 从问题描述来看,最直观的解决方法就是十进制数先转成二进制,再比对相同位数是否相同,不同则计数器累加,最终计数器的值即是Hamming Distance。 优化方案:先^运算,对运算结果的位数进行遍历,1则计数器累计 基于这个思想,需要用到的有 异或运算 和 位运算。 异或^ 和 异或非 异或运算法则:相同为零,不同为一。异或非运算法则:相同为一,不同为零。即: 输入A: 1 0 1 0 输入B: 1 1 0 0 异或运算结果: 0 1 1 0 异或非(同或)运算结果:1 0 0 1 左移<< 和 右移>> 左移 右边空出的位用0填补 高位左移溢出则舍弃该高位 右移 左边空出的位用0或者1填...阅读全文

博文 2017-10-29 06:04:40 酒肉穿肠过

go语言十大排序算法总结(下篇)

希尔排序 希尔排序基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2《d1重复上述的分组和排序,直至所取的增量dt=1(dt《dt-l《…《d2《d1),即所有记录放在同一组中进行直接插入排序为止。 该方法实质上是一种分组插入方法。 个人总结: public class ShellSorter { public void Sort(int[] arr) { int inc; for (inc = 1; inc <= arr.Length / 9; inc = 3 * inc + 1) ; for (; inc > 0; inc /= 3) { for (int i = ...阅读全文

博文 2016-07-17 19:00:04 guoer9973

golang sync.once解析

实现原理(当前代码版本go version go1.11.4 ) 1.atomic 原子操作计数器,用于记录此Once对象下的done的值,func()方法只执行一次 2.使用Mutex互斥锁保证多协程操作的安全性 由于代码量比较少贴出源码如下: // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package sync import ( "sync/atomic" ) // Once is an object that wil...阅读全文

博文 2019-07-12 21:32:40 清晨的麦田

golang学习的点点滴滴:锁的使用

package main import ( "fmt" "sync" "runtime" ) var counter int = 0 func Count(lock *sync.Mutex) { lock.Lock() counter++ fmt.Println(counter) lock.Unlock() } func main() { lock := &sync.Mutex{} for i:=0;i<10;i++ { go Count(lock) // 并发执行 } for { lock.Lock() // 锁定 c := counter lock.Unlock() // 解锁 runtime.Gosched() // 把时间片让给别人 if c >= 10 { break } } ...阅读全文

博文 2014-10-04 19:27:35 亓斌哥哥

<5> go 上下文传递context

有go有channal,slick,map,interface,func等等,其中func可以当作参数传递的这个功能也是很多动态语言支持的。 现在看下怎么使用 import ( "fmt" ) type Do struct { Name string } func (this Do) Lock() { fmt.Println(this.Name + " Lock ...") } func (this Do) UnLock() { fmt.Println(this.Name + " Unlock ~") } // 假设需要做加锁解锁 func Say() { do := Do{Name: "Say"} do.Lock() defer do.UnLock() fmt.Println("say d...阅读全文

博文 2016-01-18 15:00:04 a11101171

这个你知吗:linux安装go语言的方式

今天折腾了一天的VPS,装了HHVM、FTP,装不成功VPN。 GO语言也安装完成了,但中途也遇到一些问题,主要还是英文的问题,所以说学计算机的人啊,必须先学好英语。 言归正传,golang.org作为一个技术的官网,居然被墙了。天朝不会凡谷歌的东西都要墙掉吧?呵呵。 首先肯定是下载资源包了,链接汇总在http://www.golangtc.com/download,我用的是 http://www.golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz 这个版本的镜像地址。 按照说明cd 进入 /usr/local 目录,然后执行 wget -c http://www.golangtc.com/static/go/go1.4beta1.lin...阅读全文

博文 2014-11-03 10:00:03 ngyxf26v