-
golang 栈的扩大和收缩
所属栏目:[大数据] 日期:2020-12-16 热度:62
栈扩大 stack.go中的常量,用于检查goroutinue的状态 uintptrMask = 1 (8 *sys.PtrSize) - 1 // Goroutine preemption request. // Stored into g-stackguard0 to cause split stack check failure. // Must be greater than any real sp. // 0xfffffade in[详细]
-
golang 调度之wakep和M创建
所属栏目:[大数据] 日期:2020-12-16 热度:128
说说 wakep 和m的创建吧 wakep 调用时机和作用 作用:wakep的作用是添加一个P来执行goroutinue 时机:在有G变为runnable的时候 如:newproc ready wakep中调用 startm 来启动一个新的m startm 首先如果传递过来P是nil,则需要获取一个idle P,如果获取不到,[详细]
-
golang 热更新技巧
所属栏目:[大数据] 日期:2020-12-16 热度:151
序言 Golang标准库的http部分提供了强大的web应用支持,再加上negroni等中间件框架的支持,可以开发高性能的web应用(如提供Restful的api服务等)。 通常这些web应用部署在多台Linux操作系统的应用服务器上,并用Nginx等做为反向代理,实现高可用的集群服务[详细]
-
golang sync WaitGroup
所属栏目:[大数据] 日期:2020-12-16 热度:167
简介 它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。 WaitGroup总共有三个方法:Add(delta int),Done(),Wait()。简单的说一下这三个方法的作用。 Add:添加或者减少等待goroutine的数量 Done:相当于Add(-1) Wa[详细]
-
golang 冒泡排序
所属栏目:[大数据] 日期:2020-12-16 热度:115
package mainimport ("fmt")func main() {var a = [...]int{9,1,4,8}fmt.Printf("the array len is %v n",len(a))// for i := 0; i len(a); i++ {// for j := i; j len(a)-1; j++ {// fmt.Printf("the index1 is %v n",j)// if a[j+1] a[j] {// fmt.Printf[详细]
-
开始Go开发之旅
所属栏目:[大数据] 日期:2020-12-16 热度:92
作者: gomaster.me(冯琪超) 系列:Golang架构师之路 本文为博主原创文章,如有转载请注明出处 巧妇难做无米之炊,golang sdk就是gopher的大米 下载golang 点击 官网下载golang sdk 根据不同系统,官网下载链接会选择相应的平台进行链接跳转,也可手动选择需要[详细]
-
go template基本使用
所属栏目:[大数据] 日期:2020-12-16 热度:189
go template是个模板替换的包,如果是普通text就使用text/template,如果是html还有html/template,其实有过jsp开发经验的人对这个东西应该很容易上手,它比那些jstl表达式要简单很多。下面看看基本使用 package main import ( "text/template" "os" ) type[详细]
-
go-restful实战与深入分析之使用篇
所属栏目:[大数据] 日期:2020-12-16 热度:73
go的rest框架很多国内最著名应该是beego,但这个框架设计思想比较老套而且很笨重,如果需要一个轻量级的框架我个人挺喜欢go-restful先看看怎么使用,如果有过Flask或者springMVC的经验,这个很容易上手,所以我个人觉得语言是想通的,先学好一门语言其它的按[详细]
-
go-restful实战与深入分析之源码篇
所属栏目:[大数据] 日期:2020-12-16 热度:103
上一篇分析了go 原生的http服务。下面开始介绍go restful源码分析,有了上一篇的铺垫这篇文章讲解起来就很简单了。和go 的http一样启动监听: wsContainer := restful.NewContainer() server := http.Server{Addr : ":8080" ,Handler: wsContainer} 不用多说[详细]
-
golang crontab
所属栏目:[大数据] 日期:2020-12-16 热度:105
注册任务到调度器里,当任务要执行的时候会使用goroutines调用,这样每个任务都不会发生阻塞。 Golang不仅仅是兼容了linux标准的crontab格式,而且扩展了秒。也就是说正常的crontab是 分 时 小时 月 星期,而robfig cron是 秒 分 时 日 月 星期。 c := cron.[详细]
-
Golang Template
所属栏目:[大数据] 日期:2020-12-16 热度:94
转载:http://www.jianshu.com/p/bee02c18b221 最近刚好有个task是要用Golang把Junit的XML格式report转换成HTML格式,便学习了Golang的template包。 基于template做的那个tool transforming Junit XML report to HTML. Golang提供了对模板的支持(按照文档的[详细]
-
Golang runtime 浅析
所属栏目:[大数据] 日期:2020-12-16 热度:164
转载:http://www.cnblogs.com/yjf512/archive/2012/07/19/2599304.html 从Goroot的代码出发,里面有很多代码非常复杂,一点点看吧。最重要的概念就是runtime,golang的程序都是在runtime的基础上运行的(除了与底层直接交互的syscall)。 Runtime 在$goroot[详细]
-
golang实现从串口读取GPS信息
所属栏目:[大数据] 日期:2020-12-16 热度:141
GPS模块的数据格式 对GPS模块的数据处理本质上还是串口通信程序设计,只是GPS模块的输出遵循固定的格式,通过字符串检索查找即可从模块发送的数据中找出需要的数据,常用的GPS模块大多采用NMEA-0183 协议。NMEA-0183 是美国国家海洋电子协会(National Marine[详细]
-
golang和java创建新类型
所属栏目:[大数据] 日期:2020-12-16 热度:54
java :一个新的类型是需要通过new关键字来创建的,例如: public class Subject {@Overridepublic void rent() {// TODO Auto-generated method stubSystem.out.println("xxx");}@Overridepublic void hello(String str) {// TODO Auto-generated method stu[详细]
-
golang tar gzip压缩,解压(含目录文件)
所属栏目:[大数据] 日期:2020-12-16 热度:107
转载:http://www.3fwork.com/b208/000119MYM031848/ golang tar gzip压缩,解压(含目录文件) tar是用于文件归档,gzip用于压缩。仅仅用tar的话,达不到压缩的目的。我们常见的tar.gz就是用gzip压缩生成的tar归档文件。 go实现tar压缩与解压与zip类似,区[详细]
-
关于golang在树莓派下获取ip和mac地址
所属栏目:[大数据] 日期:2020-12-16 热度:195
前言 最近工作需要,需求为获取树莓派以太网ip 地址和mac地址,看了下golang的文档,发现net.InterfaceByName可以完成这个目标。 实现 //以太网网卡名称为eth0 inter,err := net.InterfaceByName("eth0") if err != nil { log.Fatalln(err) } //mac地址 fmt.[详细]
-
【原创】Golang 之 Web 框架调研
所属栏目:[大数据] 日期:2020-12-16 热度:108
Golang 之 Web 框架调研 本文是关于 golang Web 框架信息的学习和汇总; 超全的Go Http路由框架性能比较 net/http 自己的 default request multiplexer (i.e. mux) 简单、功能有限,很容易扩展实现自定义路由器; 很多第三方路由库本质上就是在其基础上的扩[详细]
-
Go语言学习笔记----与C语言的比较学习
所属栏目:[大数据] 日期:2020-12-16 热度:111
最近学习了golang(go语言),其中大部分是和C相似的,记录一下不同的地方,需要注意 1.go的左花括号“{”不能单独放在一行 出错代码: package main import "fmt" func main() { //error,can't have the opening brace on a separate line fmt.Println( "hello th[详细]
-
golang学习笔记之并发优化(一)
所属栏目:[大数据] 日期:2020-12-16 热度:132
golang在并发上面还是很优雅的,有事细节大家可能不太了解。 多处通知 一次当wait阻塞等待done时,如果完成后,所有之前阻塞的wait都将收到通知,这样就可以通知多个协程。 package main import ( "fmt" "sync" "time" ) func main () { var wg sync .W aitG[详细]
-
golang学习笔记之并发优化(二)
所属栏目:[大数据] 日期:2020-12-16 热度:138
打包发送 通往管道的数据如果一次打包发送的性能要高于多次发送。请看下面里面,这个里面我往管道里面发送50000000次 func main() { done,c := make ( chan int ), make ( chan int ,500 ) go func () { count : =0 for x := range c { count +=x } close (d[详细]
-
Golang 的json处理
所属栏目:[大数据] 日期:2020-12-16 热度:124
Golang官网上有专门的包来处理json数据,https://golang.org/pkg/encoding/json/。 需要导入一个包 "encoding/json" import "encoding/json" 和其他语言处理类似,分为encode和decode两部分 encode 类似于php json_encode 的函数在这里为 Marshal 函数 func[详细]
-
Goroutine + Channel 实践
所属栏目:[大数据] 日期:2020-12-16 热度:126
背景 在最近开发的项目中,后端需要编写许多提供HTTP接口的API,另外技术选型相对宽松,因此选择Golang + Beego框架进行开发。之所以选择Golang,主要是考虑到开发的模块,都需要接受瞬时大并发、请求需要经历多个步骤、处理时间较长、无法同步立即返回结果[详细]
-
Golang一键启动程序(windows平台 部署 微服务)
所属栏目:[大数据] 日期:2020-12-16 热度:125
golang编译程序从后台运行,不出现dos窗口 参考:https://my.oschina.net/u/173303/blog/174124 golang程序调用python脚本 参考:http://www.th7.cn/Program/Python/201604/847613.shtml golang实现不受限制地随时升级服务的方法 参考:http://www.js-code.c[详细]
-
15. 3Sum
所属栏目:[大数据] 日期:2020-12-16 热度:94
Given an array S of n integers,are there elements a,b,c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: The solution set must not contain duplicate triplets. For example,given array S[详细]
-
Golang实现文字转字符画
所属栏目:[大数据] 日期:2020-12-16 热度:53
Golang实现文字转字符画 简单说下原理:使用文字创建位图,然后根据位图计算每个像素点的灰度,根据灰度使用不同的字符将所有像素拼接即可. 1.相关使用的包 import ( "github.com/golang/freetype" "fmt" "image" "strconv" //"image/color" "image/png" "io/io[详细]
