-
Golang计算单个Goroutine占用内存
所属栏目:[大数据] 日期:2020-12-16 热度:87
一直在想单个Goroutine大概占用多少内存呢?今天无意间在《Concurrency Go》中看到了这段计算单个Goroutine内存占用大小的代码,分享给同样有迷惑人。 在Win7 Go1.9环境,大概是8.9KB~9.1KB,确实够小的。。。 package main import ( "fmt" "runtime" "sync"[详细]
-
指针上的golang指针作为函数参数
所属栏目:[大数据] 日期:2020-12-16 热度:142
我有这个功能 func addCatsToMap(m map[string][]CatHouse,meowId int,treats Set,dog *Dog) {//if (complicated thing) add Cat to m} 这是真的,m,对待和狗被引用参考,并且meowId有价值复制。 由于m是地图,其通过引用。 狗是一个结构体。所以,我应该传[详细]
-
不得不知道的golang之sync.Mutex互斥锁源码分析
所属栏目:[大数据] 日期:2020-12-16 热度:90
针对Golang 1.9的sync.Mutex进行分析,与Golang 1.10基本一样除了将 panic 改为了 throw 之外其他的都一样。 源代码位置: syncmutex.go 。 可以看到注释如下: Mutex can be in 2 modes of operations: normal and starvation. In normal mode waiters are[详细]
-
Golang删除目录的所有内容
所属栏目:[大数据] 日期:2020-12-16 热度:148
我是新来的,当我不知道内容时,似乎找不到删除目录的所有内容的方法。 我试过了: os.RemoveAll("/tmp/*")os.Remove("/tmp/*") 但得到删除*:没有这样的文件或目录或无效的参数。 当然如果你这样做: os.RemoveAll("/tmp/") 它也删除tmp目录。哪个不是我想[详细]
-
关于GOLANG的chan
所属栏目:[大数据] 日期:2020-12-16 热度:82
GOLANG CHAN chan是golang中非常重要的一个东西,用来做goroutine的通信,因为golang程序必然会有多个goroutine,如何同步这些goroutine就很重要了。 使用chan时有几个心得: 首先,永远是符号 - 进行读取或者写入,譬如 v,ok := -c 是读取,而 c - v 是写入[详细]
-
Golang使用心得
所属栏目:[大数据] 日期:2020-12-16 热度:125
Golang使用心得 转自:http://blog.jobbole.com/84554/?? 13年上半年接触了Golang,对Golang十分喜爱。现在是2015年,离春节还有几天,从开始学习到现在的一年半时间里,前前后后也用Golang写了些代码,其中包括业余时间的,也有产品项目中的。一直有想法写[详细]
-
golang中的RPC调用服务器方法
所属栏目:[大数据] 日期:2020-12-16 热度:97
原文链接,参考Golang中文文档:http://docscn.studygolang.com/pkg/net/rpc/#NewServer rpc 包提供了一个方法来通过网络或者其他的I/O连接进入对象的外部方法. 一个server注册一个对象, 标记它成为可见对象类型名字的服务。注册后,对象的外部方法就可以远[详细]
-
Golang不使用MD5比较文件内容是否一致
所属栏目:[大数据] 日期:2020-12-16 热度:80
func compare(spath,dpath string ) bool { sinfo,err := os.Lstat(spath) if err != nil { return false } dinfo,err := os.Lstat(dpath) if err != nil { return false } if sinfo.Size() != dinfo.Size() || !sinfo.ModTime().Equal(dinfo.ModTime()) { r[详细]
-
GoLang standard library - io 分析
所属栏目:[大数据] 日期:2020-12-16 热度:157
io 包 io 包主要定义了与输入输出相关的一些接口,即对输入输出进行了规范化。 常用函数 接口分析 读取数据到p中,如果数据不足len(p),可以正常返回,也可以带错误返回。 type Reader interface { Read(p []byte) (n int,err error) } 将p中数据写入到当前[详细]
-
Golang-简洁的并发
所属栏目:[大数据] 日期:2020-12-16 热度:127
转载原文:http://www.yankay.com/go-clear-concurreny/ 多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang,Erlang,Scala等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象[详细]
-
golang的垃圾回收与Finalizer——tcp连接是如何被自动关闭的
所属栏目:[大数据] 日期:2020-12-16 热度:69
最近在做一个golang的连接池。测试过程中发现一个有趣的现象,获取的连接没有归还给连接池,那么过一段时间后该连接会自动关闭掉。猜测这跟连接池应该是没有关系的,于是再用普通的连接做了实验,即dial一个tcp连接,发送请求,然后程序进入sleep,一段时间[详细]
-
Golang1.7使用ICMP协议实现ping功能,带TIME和TTL
所属栏目:[大数据] 日期:2020-12-16 热度:53
package main import ( "errors" "fmt" "math/rand" "net" "os" "time" "golang.org/x/net/icmp" "golang.org/x/net/ipv4" ) func Lookup(host string ) ( string ,error) { addrs,err := net.LookupHost(host) if err != nil { return "" ,err } if len (ad[详细]
-
golang post取参数的一些问题
所属栏目:[大数据] 日期:2020-12-16 热度:187
在成熟的语言java、python、php要获取这些参数应该来讲都非常简单,过较新的语言golang用获取这些个参数还是费了不少劲,特此记录一下。 golang版本:1.3.1 在贴代码之前如果能先理解一下golang http.request的三个属性Form、PostForm、MultipartForm应该能[详细]
-
golang之cgo一---go与C基本类型转换
所属栏目:[大数据] 日期:2020-12-16 热度:55
??在嵌入式开发中总少不了和C/C++打交道,而在开发中也总有某些需求要用到某些其他工具的特性,比如go语言。 Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 Go语言的语法接[详细]
-
ActivedRouter--golang实现的反向代理、监控
所属栏目:[大数据] 日期:2020-12-16 热度:118
基于golang 实现了简单的http反向代理服务器,监控服务器,客户端程序,和一个基于web的监控页面。 通过ActivedRouter 可实现自动摘除宕机服务器,的真机负载。 也可以实现IP轮训负载。 项目地址: github 简单介绍 一、通过ActivedRouter可以实现什么功能? 1、[详细]
-
supervisor运行golang守护进程
所属栏目:[大数据] 日期:2020-12-16 热度:156
Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,它提供了大量的功能来实现对进程的管理。 程序的多进程启动,可以配置同时启动的进程数,而不需要一个个启动 程序的退出码,可以根据程序的退出码来判断是否需要自动重启 程序所产[详细]
-
Golang 命令行自动设置网卡名称为LAN or WAN
所属栏目:[大数据] 日期:2020-12-16 热度:177
package mainimport ( "fmt" "net" "os" "os/exec" "strings" )func main() { if len(os .Args ) != 2 { fmt .Printf ( "Usage:n%s 110.10.25.0/24n" ,os .Args [ 0 ]) return } _,ipnet,err := net .ParseCIDR (os .Args [ 1 ]) if err != nil { fmt .Pri[详细]
-
控制阵列 Golang 的增长
所属栏目:[大数据] 日期:2020-12-16 热度:101
如果你是Golang 新手,并对它的数组(切片)不太了解,你可能想从这里开始 this introduction 。 如今,当我们谈论数组时,开发者可能会谈论数组的两种行为之一:一种是静态的(或称为固定数组),另一种是动态的。静态数组的固定长度在定义的时候被初始化完[详细]
-
golang---vim语法高亮
所属栏目:[大数据] 日期:2020-12-16 热度:189
下载 ??在http://www.golangtc.com/download上下载 go1.3beta2.src.tar.gz 版本,高于这个版本中没有vim的配置了。 解压 tar zxf go1.3beta2.src.tar.gz 配置 方式一 ??将下载目录的 go/misc/vim/ 中有对应的 syntax , ftplugin , indent , compiler 中的 go[详细]
-
Golang 读取写入Etcd数据库
所属栏目:[大数据] 日期:2020-12-16 热度:174
原文出处:个人博客地址:http://www.damonyi.cc/?p=194 项目中用到Etcd数据库来存储容器的信息和应用的域名信息,将操作Etcd的golang代码整理了一下 1、将Container信息写入到指定目录 c,err := common.GetEtcdClient()if err != nil {beego.Error("get etc[详细]
-
Golang1.7 Goroutine源码分析
所属栏目:[大数据] 日期:2020-12-16 热度:125
一、Golang简介 1.1概述 Golang语言是Google公司开发的新一代编程语言,简称Go语言,Go 是有表达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新奇的类型系统允许构建有弹性的模块化程序。 Go 编译到机器码非常快速,同时具有便[详细]
-
GoLang notes
所属栏目:[大数据] 日期:2020-12-16 热度:120
Golang Notes 使用没有指定类型的常量,可以当成使用当前变量对应类型的常量值。[详细]
-
GoLang notes
所属栏目:[大数据] 日期:2020-12-16 热度:179
Golang Notes 使用没有指定类型的常量,可以当成使用当前变量对应类型的常量值。[详细]
-
论golang的文档即代码
所属栏目:[大数据] 日期:2020-12-16 热度:161
GO TEST 如果提供一个库,或者提供了一个模块,如何给使用者描述这个API的用法?一般都是给文档,但是文档非常容易不同步,在golang中,有更高级的做法,也是最好的做法。 以 go-fdkaac 为例,这个是一个go binding,调用了lib-fdkaac的c函数,提供aac的code[详细]
-
CGO,GOLANG调用C库,调用代码、静态库或动态库
所属栏目:[大数据] 日期:2020-12-16 热度:53
CGO CGO可以让golang和c互相调用,譬如x264或者aac编解码,用go再实现一遍比较麻烦,直接调用c的函数会更合适。 CGO可以直接用C的代码,或者C的静态库,或者动态库,当然C++也是可以的。 写了一个fdkaac的binding:https://github.com/winlinvip/go-fdkaac[详细]
