go
qinhongyou
这个作者很懒,什么都没留下…
展开
-
go操作mysql数据库,实现增删改查
package mainimport ( "database/sql" "log" "fmt" _"github.com/go-sql-driver/mysql")//数据库:qhy_test//表:birthday_tablefunc main() { db, err := sql.Open("mysql", "root:qinhy123456@tcp(127.0.0..原创 2018-04-13 19:49:41 · 1072 阅读 · 0 评论 -
go定时器实现
package mainimport ( "fmt" "time")func main() { fmt.Println("定时器开始执行") timer(timerFunc)}var count intfunc timerFunc() { fmt.Printf("hello timer: %d\n", count) count++}func timer(time...原创 2018-04-25 11:09:27 · 2626 阅读 · 2 评论 -
高效的内存区块缓存容器
下面的缓存实现主要应用于存储最新区块, 假定产生的块是连续的,我们需要把块存起来,从而提高取数据的效率,缓存的容器大小为100,大小可以调整,当缓存满了, 后面的块需要替换最早的区块,从而达到容器存的最新的块。下面是技术实现:package mainimport ( "container/list" "errors" "fmt")const BlockMaxVolume = 5 /...原创 2018-04-25 20:19:34 · 380 阅读 · 0 评论 -
golang 对通道的理解
通道有两种,一种是带缓存的;另一种是不带缓存的;带缓存的通道,只要缓存还没有满,通道就不会阻塞;不带缓存的通道,是阻塞的。下面用一个例子来说明:package mainimport ( "time" "fmt")func main() { dataChannel := make(chan int, 1) exitChannel := make(chan bool) defer...原创 2018-05-04 11:22:54 · 1307 阅读 · 0 评论 -
搭建私有链网络
网上已经有很多关于怎样搭建私有链的文章,我只是从他们那里吸取学习,然后在工作中吸收消化,转化成自己的理解。在这里,我只是一个学习者,新手。我是在liunx上环境上,利用geth来部署私人链网络。在部署链网络前,需要把geth安装好,这个在网络上很多。1、首先在本地目录($home)中创建3个文件夹chain1、chain2、chain3,这里名字是任意的,这三个文件夹用于存储私有链的数据。下面是构...原创 2018-05-14 19:18:51 · 1243 阅读 · 0 评论 -
多个协程顺序打印数字
package mainimport ( "sync" "fmt" "time")var ( switchFlow chan int wg sync.WaitGroup)func routine(i int, serialNumber int) { time.Sleep(100 * time.Millisecond) loop: for { select { ...原创 2018-05-29 18:51:49 · 1228 阅读 · 0 评论 -
ethermint和tendermint的编译
总结ethermint、tendermint的源码编译,期间遇到了很多次失败,反复尝试,真的是痛苦不堪,幸好有位同事编译过了,就去请教他,从他那里得到帮助,很感谢他。最后是编译通过了,反思了下,我所遇到的坑,他都成功的避开了,你以为按照官网的一步步走就ok了,相信我,只会让你一次次失败,甚而想砸电脑的冲动。ethermint官网:http://ethermint.readthedocs.io/en...原创 2018-05-30 19:31:46 · 1397 阅读 · 7 评论 -
gorm框架增、删、改、查简单测试
gorm中文文档http://gorm.book.jasperxu.com/因为程序非常简单,一目了然,因此不做过多解释:package mainimport ( "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql")type UserInfo struct { Id int...原创 2018-09-06 17:03:56 · 3527 阅读 · 0 评论