-
golang实践之find工具
所属栏目:[大数据] 日期:2020-12-16 热度:131
golang写个小工具练练手 https://github.com/beckbikang/go-mfind a find tool write in golang we can use it find some file 一个简单的文本查找工具 简单的思路: 1 扫描所有的文件 2 多协程判断文件是否符合要求 DONE 1 find filename from a dirpath TO[详细]
-
golang实现命令行程序的使用帮助
所属栏目:[大数据] 日期:2020-12-16 热度:172
通过 flag 包我们可以很方便的实现命令行程序的参数标志, 接下来我们来看看如何实现命令行程序的使用帮助, 通常以参数标志 -h 或 --help 的形式来使用. 自动生成使用帮助 我们只需要声明其他参数标志,并执行解析, flag 包会帮我们自动生成使用帮助. //main.g[详细]
-
golang json处理
所属栏目:[大数据] 日期:2020-12-16 热度:74
package mainimport ("encoding/json""fmt""os")type ConfigStruct struct {Host string `json:"host"`Port int `json:"port"`AnalyticsFile string `json:"analytics_file"`StaticFileVersion int `json:"static_file_version"`StaticDir string `json:"sta[详细]
-
golang 线程池
所属栏目:[大数据] 日期:2020-12-16 热度:103
package mainimport "fmt"func worker(id int,jobs chan int,results chan int) { for j := range jobs { fmt.Println("worker",id,"procesing job",j) results - j * 2 }}func main() { job := make(chan int,100) result := make(chan int,200) for w := 1[详细]
-
golang 线程池下载
所属栏目:[大数据] 日期:2020-12-16 热度:77
type GoroutinePool struct { 2 Queue chan func() error 3 Number int 4 Total int 5 6 result chan error 7 finishCallback func() 8 } 9 10 // 初始化11 func (self *GoroutinePool) Init(number int,total int) {12 self.Queue = make(chan func() error[详细]
-
golang chan 使用例子
所属栏目:[大数据] 日期:2020-12-16 热度:125
type TcpListeners struct { conns chan *net.TCPConn closing chan bool wait *sync.WaitGroup}func NewTcpListeners(addrs []string) (v *TcpListeners,err error) { v = TcpListeners{ addrs: addrs,conns: make(chan *net.TCPConn),closing: make(chan b[详细]
-
golang手动管理内存
所属栏目:[大数据] 日期:2020-12-16 热度:162
作者:JohnGraham-Cumming.原文点击此处。翻译:Lubia Yang 前些天我介绍了我们对Lua的使用,implementournewWebApplicationFirewall. 另一种在CloudFlare(作者的公司)变得非常流行的语言是Golang。在过去,我写了一篇howweuseGo来介绍类似Railgun的网络服[详细]
-
golang读取接口数据interface{}
所属栏目:[大数据] 日期:2020-12-16 热度:194
有个时候不确定数据类型是什么,我们就会使用 interface{} 定义,但是当赋值后读取的时候有点麻烦,不能直接读取 interface{} 里面的数据,用下面方法来判定之后即可读取了 //空接口接受任何数据i := make(map[string]interface{})i["slice"] = []string{"1","2"[详细]
-
golang操作环境变量
所属栏目:[大数据] 日期:2020-12-16 热度:100
各类开发和软件配置中总是离不开环境变量(environment variables), 比如: golang 中的 GOROOT 和 GOPATH , 比如: java 中的 JAVAHOME 等等. 在golang中我们可以通过 os 包来实现对环境变量的操作, 列出系统中所有的环境变量 package mainimport ("fmt""os")f[详细]
-
Go 标准库介绍五: io
所属栏目:[大数据] 日期:2020-12-16 热度:109
原文链接 http://ironxu.com/772 本文介绍Go 标准库 io 常用的导出函数,结构体和方法。 io 包提供了对 I/O 原语的基本接口,这些接口抽象出了泛用的函数并附加了一些操作。因为这些接口是对底层实现完全不同的低水平操作的包装,除非得到其它方面的通知,客[详细]
-
Go语言-结构体
所属栏目:[大数据] 日期:2020-12-16 热度:188
Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性: Title :标题 Author : 作者[详细]
-
《Go in Action 2015.11.pdf》之Go’s type system
所属栏目:[大数据] 日期:2020-12-16 热度:80
Interface Type embedding type embedding for pointer Interface type notifier interface { notify()} type user struct { name string email string } func (u *user) notify() { fmt.Printf( "sending %v %v" ,u.email,u.name)} func sendNotification(n[详细]
-
Golang定时任务
所属栏目:[大数据] 日期:2020-12-16 热度:50
package mainimport ("fmt""time")func main() {var ch chan int//定时任务ticker := time.NewTicker(time.Second * 5)go func() {for range ticker.C {fmt.Println(time.Now().Format("2006-01-02 15:04:05"))}ch - 1}()-ch} 广告时间: 张大妈 好看美剧 妹[详细]
-
lotou详解一:基本概念
所属栏目:[大数据] 日期:2020-12-16 热度:87
lotou是一个基于golang的支持分布式的轻量级游戏服务器框架,主要提供游戏服务器集群的消息转发代码仓库 lotou提供了三种不同的消息发送方式: 1.Send 用于普通的消息推送,不需要返回,发送之后就不再关注 2.Request 异步非阻塞请求响应模式,request接收一[详细]
-
Golang、python中登录开源中国,并发表博客。
所属栏目:[大数据] 日期:2020-12-16 热度:58
GO、python用不了十几分钟可以做出来,易语言的话,可能几分钟完事,国产易语言感觉快捷[详细]
-
redigo 连接池代码分析
所属栏目:[大数据] 日期:2020-12-16 热度:171
结构体分析 type Pool struct { // 用来创建redis连接的方法 Dial func() (Conn,error) // 如果设置了给func,那么每次p.Get()的时候都会调用改方法来验证连接的可用性 TestOnBorrow func(c Conn,t time.Time) error // 定义连接池中最大连接数(超过这个数会[详细]
-
golang LRU实现(使用双向链表实现)
所属栏目:[大数据] 日期:2020-12-16 热度:169
LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 lru.go type Key interface{}type entry struct { key Key value interface{} } type Cache Stru[详细]
-
Golang 平滑关闭/重启与热编译技术
所属栏目:[大数据] 日期:2020-12-16 热度:138
Golang 平滑关闭/重启与热编译技术 1 平滑关闭 本文所讨论的平滑关闭是指,HTTP服务、RPC服务、Socket长服务等各种网络服务的平滑关闭。 1.1 平滑关闭的步骤 关闭监听器listener,不再接收新的请求 关闭空闲连接,等待新建连接、活动连接的关闭(忽略被劫持[详细]
-
Golang、python多线程刷票,刷的很爽。
所属栏目:[大数据] 日期:2020-12-16 热度:149
http://live.sports.ifeng.com/match/552.html 看到这个页面需要投票支持下中国队。 直接用Go语言来写下刷票。 package mainimport ("fmt""net/http")func vote(a chan int) {for i := 0; i = 1000; i++ {http.Get("http://survey.news.ifeng.com/accumulato[详细]
-
使用Golang实现简单Ping过程
所属栏目:[大数据] 日期:2020-12-16 热度:119
摘要: Ping的基本原理是发送和接受ICMP请求回显报文,利用Go语言可以轻松实现这一过程,较之C/C++语言,Go的实现过程十分简单,效率和安全性也十分完美。 引言 关于各种语言实现Ping已经是大家喜闻乐见的事情了,网络上利用Golang实现Ping已经有比较详细的代[详细]
-
golang的定时器
所属栏目:[大数据] 日期:2020-12-16 热度:149
Golang的Timer类,是一个普遍意义上的定时器,它有着普通定时器的一些特性,例如: 给定一个到期时间,和一个回调函数,到期后会调用回调函数 重置定时器的超时时间 停止定时器 Golang的Timer在源码中,实现的方式是以一个小顶堆来维护所有的Timer集合。 pac[详细]
-
Golang、python中的字符串、slice、list性能研究。
所属栏目:[大数据] 日期:2020-12-16 热度:74
1:在go语言中,先来看创建slice的性能分析,我们知道slice有append这个功能 t := time.Now() m := []string{} for i := 0; i 1000000; i++ { m = append(m,strconv.Itoa(i)) }fmt.Println(time.Now().Sub(t)) 可以看到添加了1000000项,花费时间368.0211ms[详细]
-
golang数据库操作
所属栏目:[大数据] 日期:2020-12-16 热度:187
package mainimport ("database/sql"_ "github.com/go-sql-driver/mysql""fmt")func main() {//连接数据库,获得连接句柄db,err := sql.Open("mysql","root:123456@tcp(localhost:3306)/huifang5?charset=utf8")if err != nil {panic(err.Error())}defer db.[详细]
-
Go 标准库介绍六: log
所属栏目:[大数据] 日期:2020-12-16 热度:190
Go 标准库介绍六: log 原文链接 http://ironxu.com/775 本文介绍Go 标准库 log 的常用导出函数,结构体及方法。 import log log 包实现了简单的日志服务,log 包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”Logge[详细]
-
lotou详解二:service注册和单节点消息发送
所属栏目:[大数据] 日期:2020-12-16 热度:152
代码地址 lotou中通过core/handler.go来管理单机节点中注册的service 注册和移除注册 registerService为一个service分配一个唯一的serviceId serviceId由16的节点id和46位的本机唯一的id组成。 unregisterService移除一个service,同时将serviceId写会cache[详细]
