GO语言不要用共享内存来通信,要用通信来共享内存
摘要:这句话是推荐使用channel来实现 "让同一块内存在同一时间内只被一个线程操作" 的目的 先看一个简单的示例代码 package main import ( "fmt" "net/http" ) var j int func HelloServer(w http.ResponseWriter, r
阅读全文
posted @
2020-09-29 20:34
longzhankunlun
阅读(975)
推荐(0)
iris basicauth过期时间不起作用
摘要:github.com/kataras/iris/v12 修改basicauth.go package basicauth // test file: ../../_examples/authentication/basicauth/main_test.go import ( "encoding/ba
阅读全文
posted @
2020-09-22 00:27
longzhankunlun
阅读(336)
推荐(0)
golang iris小坑
摘要:访问/pulibc路径 如果controller中定义了GetPublic方法,会执行这个方法,否则会被当做访问静态文件/public/index.html处理
阅读全文
posted @
2020-09-21 09:35
longzhankunlun
go iris简易mvc模型
摘要:datamodels/user.go package datamodels type User struct { UserId int64 `json:"user_id" xorm:"not null pk autoincr BIGINT(20)"` Name string `json:"name"
阅读全文
posted @
2020-09-21 00:11
longzhankunlun
阅读(669)
推荐(0)
go iris分组路由和中间件
摘要:package main import ( "github.com/kataras/iris/v12" ) func main() { // 1.创建实例 app := iris.New() // 2.设置错误等级 //app.Logger().SetLevel("debug") // 3.注册模板
阅读全文
posted @
2020-09-20 15:34
longzhankunlun
阅读(1101)
推荐(0)
golang中[]string和...string
摘要:[]string 是字符串切片 ...string用作参数 ...参数语法形成了可变参数的参数。它将接受零个或多个string参数,并将它们作为切片引用 func f(args ...string) { fmt.Println(args) } func main() { args := []stri
阅读全文
posted @
2020-09-15 14:02
longzhankunlun
阅读(5089)
推荐(0)
go xorm 咸鱼笔记
摘要:Update的时候,如果用到MustCols,则MustCols里面的字段必须更新,如果初始化结构体没有给该字段赋值,那么将会把nil值强制更新上去 func (d *GiftDao) Delete(id int64) error { data := &models.User{Balance: 1,
阅读全文
posted @
2020-09-15 13:22
longzhankunlun
阅读(320)
推荐(0)
mysql记录历史sql语句
摘要:查看是否开启日志记录 SHOW VARIABLES LIKE "%general_log%; 如果没有开启,则开启日志记录,设置为OFF为关闭日志记录 SET GLOBAL general_log = 'ON'; 查看日志记录的路径 show variables like 'general_log_
阅读全文
posted @
2020-09-15 00:19
longzhankunlun
阅读(350)
推荐(0)
go xorm cmd工具生成go代码
摘要:如果没有go-sql-driver/mysql就先安装 go get -u github.com/go-sql-driver/mysql 安装xorm,在cmd命令行下 go get github.com/go-xorm/xorm 再安装xorm的cmd命令工具 go get github.com/
阅读全文
posted @
2020-09-13 23:48
longzhankunlun
阅读(628)
推荐(1)
golang队列任务处理
摘要:单任务队列耗时 package main import ( "crypto/rand" "fmt" "math/big" "strconv" "strings" "sync" "time" ) type task struct { id uint32 // callback chan int } v
阅读全文
posted @
2020-09-12 17:28
longzhankunlun
阅读(1185)
推荐(0)
golang map与sync.Map新手小坑
摘要:package main import "sync" var sm sync.Map var sm1 *sync.Map var m map[int]string func main() { sm.Store(1, "xixi") sm1.Store(1, "xixi") // 此处因为没有分配内存
阅读全文
posted @
2020-09-12 10:01
longzhankunlun
golang 生成随机数
摘要:import "math/rand" func luckyCode() int32 { seed := time.Now().UnixNano() // rand内部运算的随机数 code := rand.New(rand.NewSource(seed)).Int31n(int32(rateMax)
阅读全文
posted @
2020-09-10 08:02
longzhankunlun
阅读(2041)
推荐(0)
golang的mysql基本操作
摘要:package main import ( "database/sql" "fmt" //"log" "strconv" "sync" _ "github.com/go-sql-driver/mysql" ) var ( dbConn *sql.DB err error ) type SimpleS
阅读全文
posted @
2020-09-08 11:39
longzhankunlun
阅读(194)
推荐(0)
访问golang webserver会触发两次handler
摘要:谷歌浏览器会触发两次Handler package main import ( "io" "net/http" "strconv" ) var count int = 0 // handler func firstPage(w http.ResponseWriter, r *http.Request
阅读全文
posted @
2020-09-08 00:27
longzhankunlun
阅读(398)
推荐(0)
golang线程安全与互斥锁
摘要:在高并发下或多goroutine同时执行下,可能会同时读写同一块内存 Golang乐观锁和悲观锁 修改一个数值的步骤: ①把想修改的数值从某个地方取出来 ②在取出来的数值修改为期望值 ③把修改后的数值保存到原来的地方 可能存在的问题: 如果两个goroutine同时执行修改数值的步骤,都要进行第③步
阅读全文
posted @
2020-09-08 00:13
longzhankunlun
阅读(1042)
推荐(0)
golang for select break小坑
摘要:package main import "fmt" import "log" func main() { fmt.Println(test()) } func test() bool { ch := make(chan int,30) for i := 0; i < 30; i++ { ch <-
阅读全文
posted @
2020-09-03 10:31
longzhankunlun
阅读(1108)
推荐(0)