-
【golang】信号捕捉和处理
所属栏目:[大数据] 日期:2020-12-16 热度:95
捕捉和处理信号可以实现优雅start和restart等。golang的signal提供了相关的方法。这里是一个模板,目录结构: ├── sig│ └── sig.go└── test.go 先看如何调用: 1.new出一个对象 2.register信号与对应的处理函数 3.定义os.Signal类型的channel,调[详细]
-
用wrk对golang/nodejs/nginx做性能测试对比
所属栏目:[大数据] 日期:2020-12-16 热度:130
sudo taskset -c 1 ./wrk -c1 -t1 -d30 http://localhost/hellowrk+nginx(helloworld module) sudo taskset -c 0 sbin/nginx nginx: cpu:76% wrk: cpu:70% Running 30s test @ http://localhost/hello 1 threads and 1 connections Thread Stats Avg Stdev M[详细]
-
一个简单GOLANG路由
所属栏目:[大数据] 日期:2020-12-16 热度:154
package controllersimport ( . "logger" "web" )//对象继承直接拥用REST标准接口type login struct { web .ControllerBase }func (this *login) Get() { this .Template [ "key" ] = "value" this .WriteString ( "GET:" ,this .Template )}func (this *log[详细]
-
Golang 工程自管理
所属栏目:[大数据] 日期:2020-12-16 热度:109
有用过VS或者Eclipse的同学一定对左边一列(也可能放右边或下边或者隐藏起来)工程目录记忆尤新。 尤其是有一大堆依赖包、库的时候,目录结构更是复杂。其实这都不是大问题。 熟悉自己工程的自然很适应这种结构。但是当大家去看一些C/CPP工程的时候,其目录[详细]
-
Go语言中隐式接口的冲突问题
所属栏目:[大数据] 日期:2020-12-16 热度:74
Go语言中隐式接口的冲突问题 Go语言中采用的是隐式接口,只要满足的接口的定义,就可以当作接口使用. 比如内置的 error 接口: type error struct {Error() string} 隐式接口的好处有很多. 但我个人觉得最主要的一点就是不需要再去画祖宗八代的继承关系图了(松[详细]
-
【GoRK3288】1.Rockchip RK3288, GO!GO!!GO!!!
所属栏目:[大数据] 日期:2020-12-16 热度:129
前言: 最近看了看Google的Go语言,发现有点意思,这个开源的项目准备用golang来实现。 其实开发板本身的驱动程序已经实现了各个功能,但是有的时候在使用中有些麻烦,有可能需要修改dts文件重新编译内核才能够使用某个功能,所以打算开发这个UIO驱动的开源[详细]
-
go语言结构体定义使用
所属栏目:[大数据] 日期:2020-12-16 热度:112
package mainimport ( "fmt" "sync")type Info struct { info map[int]string mu sync.RWMutex}func main() { x := Info{info: make(map[int]string)} x.Set(1,"golang") s := x.Get(1) fmt.Println(s)}func (s *Info) Get(i int) string { s.mu.RLock() inf[详细]
-
使用Golang开发微信公众平台----自定义菜单(删除、新
所属栏目:[大数据] 日期:2020-12-16 热度:187
(一)、自定义菜单--删除 import ("bytes""encoding/json""fmt""github.com/astaxie/beego""io/ioutil""net/http") var url_del = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + Access_tokenclient := new(http.Client)reg,_ := http.Ne[详细]
-
使用 golang 收集系统指标
所属栏目:[大数据] 日期:2020-12-16 热度:151
common.go // copy code from github.com/shirou/gopsutilpackage sysimport ("bufio""os""strings")// ReadLines reads contents from file and splits them by new line.// A convenience wrapper to ReadLinesOffsetN(filename,-1).func readLines(filena[详细]
-
golang 简单的 channel
所属栏目:[大数据] 日期:2020-12-16 热度:185
packagemainimport("fmt""os""bufio")funcmain(){in:=make(chanstring)out:=make(chanstring)reader:=bufio.NewReader(os.Stdin)gofunc(){for{a:=-inout-afmt.Println("in",a)}}()gofunc(){for{b:=-outfmt.Println("out",b)}}()for{line,_:=reader.ReadStrin[详细]
-
【GOLANG】Go语言学习-time包
所属栏目:[大数据] 日期:2020-12-16 热度:101
go语言的time包 组成 time.Duration(时长,耗时) time.Time(时间点) time.C(放时间点的管道)[ Time.C:=make(chan time.Time) ] time包里有2个东西,一个是时间点,另一个是时长 时间点的意思就是“某一刻”,比如 2000年1月1日1点1分1秒 那一刻(后台[详细]
-
【GOLANG】Go语言学习-logger
所属栏目:[大数据] 日期:2020-12-16 热度:82
go-logger 是golang 的日志库 ,基于对golang内置log的封装。 用法类似java日志工具包log4j 打印日志有5个方法 Debug,Info,Warn,Error,Fatal 日志级别由低到高 设置日志级别的方法为:logger.SetLevel() 如:logger.SetLevel(logger.WARN) 则:logger.Debu[详细]
-
golang实现的私聊服务
所属栏目:[大数据] 日期:2020-12-16 热度:110
一个简单的golang实现的私聊,由服务器端决定两两匹配 服务器端 chat_server.go package mainimport ( "fmt" "io" "log" "net")const listenAddr = "localhost:4000"func main() { l,err := net.Listen("tcp",listenAddr) if err != nil { log.Fatal(err) }[详细]
-
Starting your first golang program. 编写golang程序的"Hel
所属栏目:[大数据] 日期:2020-12-16 热度:108
下面我们开始Go的 "Hello world" 的编写,主要参考资料来自: https://golang.org/doc/install 主要包括以下几个部分: 1. Go在Linux内核操作系统下的编译环境的安装。我这里是Ubuntu 15.04,Linux 3.19.0内核。 2. Go程序的编写于运行。 3. Go程序简要说明 4[详细]
-
golang 递归判断回文字符串
所属栏目:[大数据] 日期:2020-12-16 热度:124
判断回文字符串是个比较经典的问题。 思路就是拿第一个字符和最一个字符比较,如果不相同就退出,相同的话继续刚刚的过程,直到第一个字符和最后一个字符相遇或者他们的距离为1时。说明他们是回文字符串。 下面的代码会忽略空白字符 如"1 1 2 1"会认为是回文[详细]
-
【GoRK3288】6.TSADC操作方法
所属栏目:[大数据] 日期:2020-12-16 热度:73
请先在 https://github.com/tjCFeng/GoRK3288 下载 GoRK3288 开源库 。 Rockchip RK3288中有好多ADC,HS-ADC(High Speed ADC)、TS-ADC(Temperature Sensor ADC)。 其中HS-ADC主要用于传输数据,例如手册中说的GPS数据等;而TS-ADC顾名思义,就是采集各种[详细]
-
golang+数据库定时任务
所属栏目:[大数据] 日期:2020-12-16 热度:191
golang+数据库定时任务 项目背景大致如下,楼主在用nodejs写项目时遇到一些需要定时去处理的事情,例如僵尸用户定时清除,一些产品定时下架,邮件定时发送等等! 期初使用nodejs setTimeOut递归嵌套实现,后来发现内存不断飙升,故而放弃,最终改用了性能不错[详细]
-
【GoRK3288】7.WatchDog操作方法
所属栏目:[大数据] 日期:2020-12-16 热度:174
请先在 https://github.com/tjCFeng/GoRK3288 下载 GoRK3288 开源库 。 WatchDog在做服务器程序时很有用处,服务器在运行过程中,一旦发生死机、程序异常等情况,造成系统运行紊乱,可以通过WatchDog来自动控制整个系统重新启动,可以最大限度地减少人员维护[详细]
-
Golang学习笔记--log包
所属栏目:[大数据] 日期:2020-12-16 热度:137
个人站:http://www.cloudnoter.com/?p=137 一、快速使用 Golang的log包短小精悍,可以非常轻松的实现日志打印转存功能。不用多说,log支持并发操作(即协程安全-相对于JAVA中的线程安全而言),其结构定义如下: type Logger struct { mu sync . Mutex // e[详细]
-
Golang 计算目录中代码的行数
所属栏目:[大数据] 日期:2020-12-16 热度:120
程序名字 countline os 包来获取运行参数 运行的时候要提供两个参数,一个是目录,一个是扩展名 如: countline . go 没有运行参数的就退出程序 if len (os.Args) != 3 { fmt.Println( "countline [Dir] [extention]" ) return } 计算文件有多少个 ‘n’ fu[详细]
-
Go 语言从新手到大神:每个人都会踩的五十个坑 (1-12)
所属栏目:[大数据] 日期:2020-12-16 热度:193
本文翻译自最近各种 Go 语言社区分享的很多的英文文档 50 Shades of Go: Traps,Gotchas,and Common Mistakes for New Golang Devs,小编第一眼以为 50 Shades of Grey…… Go语言是一个简单却蕴含深意的语言。但是,即便号称是最简单的C语言,都能总结出一本[详细]
-
golang 查找数组中最小数的泛型函数
所属栏目:[大数据] 日期:2020-12-16 热度:175
golang里要实现查找数组最小数的泛型函数,需要用到类型开关。 gol的类型开关写法: switchv.(type){caseint:casefloat64:casestring:} 思路就是遍历数组,遇到更小的数保存下来,函数退出返回那个数。 golang代码: packagemainimport("fmt")funcMinimum(fi[详细]
-
golang 高效低精度定时器实现
所属栏目:[大数据] 日期:2020-12-16 热度:113
golang默认定时器是通过time模块提供的,不管是golang,libev,libevent也好,定时器都是通过最小堆实现的,导致 加入定时器时间复杂度为O(lgn),在需要大量定时器时效率较低,所以Linux提供了基于时间轮的实现,我们本次提供的 定时器实现就是标准的Linux时间[详细]
-
Go 语言从新手到大神:每个人都会踩的五十个坑 (13-22)
所属栏目:[大数据] 日期:2020-12-16 热度:157
Slice 和 Array 维度是一维 级别:新手入门级 Go 看上去支持多维的 Array 和 Slice,但是其实不然。尽管可以创建 Array 的 Array,也可以创建 Slice 的 Slice。对于依赖多维 Array 的计算密集型的程序,无论是从性能还是复杂程度,Go 都不是最佳选择。 当然[详细]
-
Golang实现简单tcp服务器01 -- 概述
所属栏目:[大数据] 日期:2020-12-16 热度:109
概述 Golang作为一门近些年来非常风光的开发语言,其实用范围很广,图形界面,web框架,图像引擎等等. 由于其语言特性简化了并发/多核的开发,受到了很大的关注. 而使用它进行服务器开发,也是非常高校而简洁的. 废话不多说,本项目实践的目的是使用golang开发一个[详细]
