4 daily886

尚未进行身份认证

一只被设计狮俘虏的程序猿

等级
TA的排名 1w+

go实践二十一 使用cookie和session

go使用cookie和session目录结构如下:项目根目录是gowebgoweb的目录结构├──session#session配置目录│├──memorysession.go#内存session实现文件│├──session.go...

2019-09-12 11:12:37

go实践二十--1 web开发--模拟表单上传文件

前面我们学习了在表单中如何上传文件:https://blog.csdn.net/daily886/article/details/100558802现在我们模拟客户端提交表单数据和文件新建一个testformupload.go文件,内容如下:packagemainimport( "bytes" "fmt" "io" "io/ioutil" "mime/multi...

2019-09-05 15:47:41

go实践二十 web开发--表单唯一token 表单验证 防止xss攻击 上传文件 cookie处理

新建一个testform2.gtpl文件,内容如下:<!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,user-scala...

2019-09-05 15:22:27

go实践十九 web开发使用模板获取form参数

新建一个testform1.gtpl文件,内容如下:<!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,user-scala...

2019-09-04 17:18:36

go实践十八 搭建grpc服务器和客户端

之前我们如果使用protobuf:https://blog.csdn.net/daily886/article/details/98594066现在我们使用protobuf作为数据流,搭建grpc服务器和客户端目录结构如下:项目根目录是grpcgrpc的目录结构├──protobuf#proto文件统一存放目录...

2019-08-30 15:34:08

go实践十七 调用c 原生代码 、.so 动态库和 .a 静态库

golang调用c原生代码、.so动态库和.a静态库新建一个静态库文件hia.c#include<stdio.h>voidhia(){printf("hellocgo-a!\n");}新建一个静态库文件hia.hvoidhia();新建一个动态库文件hiso.c#include<stdio.h>v...

2019-08-29 17:35:13

Go语言并发之道学习十四 工作窃取和竞争检测

工作窃取和竞争检测packagemainimport( "os" "log" "time" "runtime/pprof" "fmt")/*工作窃取:go语言遵循for-join模型进行并发。在goroutine开始的时候fork,join点是两个或更多的goroutine通过channel或sync包中的类型进行同步时。工作窃取算法遵循一些基本原则,...

2019-08-29 15:01:47

Go语言并发之道学习十三 治愈异常的goroutine

治愈异常的goroutinepackagemainimport( "log" "time" "os")/*治愈异常的goroutine:在长期运行的后台程序中,经常会有一些长时间运行的goroutine。这些goroutine经常处于阻塞状态,等待数据以某种方式到达,然后唤醒它们,进行一些处理,再返回一些数据。如果没有外部干预,一个goroutine很容易进入...

2019-08-28 16:44:28

Go语言并发之道学习十二 限速器

限速器-限制api接口、硬盘、网络访问速度packagemainimport( "os" "sync" "log" "fmt" "sort" "time" "context" "golang.org/x/time/rate")/*大多数的限速都是基于令牌桶算法的:如果要访问资源,你必须拥有资源的访问令牌,没有令牌的请求会被拒绝。假设这些令牌存储在一个等待...

2019-08-28 10:56:27

微信苹果ios端,公众号中打开网页分享无效错误有问题

如果是微信公众号打开首页进去详情页,要分享详情页,要重新在详情页刷新一次

2019-08-27 08:56:44

Go语言并发之道学习十一 复制请求

复制请求packagemainimport( "fmt" "sync" "math/rand" "time")/*复制请求:对于某些应用来说,尽可能快的接收响应是重中之重。例如:程序正在处理用户的http请求,或者检索一个数据块,在这些情况下,你可以进行权衡:可以将请求分发到多个处理程序(无论是goroutine,进程,还是服务器),其中一个将比其他处理...

2019-08-26 16:00:22

Go语言并发之道学习十 心跳单元测试

心跳单元测试packagemainimport( "time" "testing")funcDoWork( done<-chaninterface{}, pulseIntervaltime.Duration, nums...int, )(<-chaninterface{},<-chanint){ heartbeat:=make(...

2019-08-26 15:13:06

Go语言并发之道学习九 心跳

并发进程检测-心跳packagemainimport( "math/rand" "time" "fmt")/*并发进程取消的原因:·超时:超时是隐式取消·用户干预:为了获取良好的用户体验,通常建议维持一个长连接,然后以轮询间隔将状态报告发送给用户,或允许用户查看他们认为合适的状态。当用户使用并发程序时,有时需要允许用户取消他们已经开始的操作。·父进程取消:对...

2019-08-26 15:12:10

Go语言并发之道学习八 context

goroutine中使用context包packagemainimport( "time" "sync" "fmt" "context")typeContextinterface{ //当为该context工作的work被取消时,deadline将返回时间。在没有设定期限的情况下, //deadline返回ok==false.联系的调用dead...

2019-08-23 09:34:52

Go语言并发之道学习七 缓冲单元测试

缓冲单元测试gotest命令,会自动读取源码目录下面名为*_test.go的文件,生成并运行测试用的可执行文件。新建一个bufio_test.go的文件:packagemainimport( "testing" "fmt" "os" "io" "io/ioutil" "bufio")/*测试缓冲和未缓冲的写入速度缓冲写入比未缓冲写入更快。这...

2019-08-21 17:12:04

Go语言并发之道学习六 管道的扇入 or-done-channel tee-channel 桥接channel

管道的扇入扇出or-done-channeltee-channel桥接channelpackagemainimport( "fmt" "time" "sync" "runtime" "math/rand")funcmain(){ fmt.Println("pipe1") pipe1() fmt.Println() fmt.Println("ordon...

2019-08-21 17:10:34

Go语言并发之道学习五 channel生成器单元测试

channel生成器单元测试gotest命令,会自动读取源码目录下面名为*_test.go的文件,生成并运行测试用的可执行文件。新建一个repeat_test.go的文件:packagemainimport"testing"funcBenchmarkGeneric(b*testing.B){ repeat:=func( done<-...

2019-08-21 09:45:36

Go语言并发之道学习四 约束 orchannel 错误处理 管道 channel生成器

约束orchannel错误处理管道channel生成器packagemainimport( "sync" "time" "bytes" "math/rand" "net/http" "fmt")funcmain(){ fmt.Println("testconstraint") testconstraint() fmt.Println() fmt...

2019-08-21 09:42:23

Go语言并发之道学习三 select

selectfor-select控制channelpackagemainimport( "fmt" "time")/*select语句是将channel绑定在一起的黏合剂,这就是我们如何在一个程序中组合channel以形式更大的抽象事物的方式。*//*声明select语句是一个具有并发性的Go语言程序中最重要的事情之一,这并不是夸大其词。在一起系统中两个或多个...

2019-08-19 14:09:10

Go语言并发之道学习二 channel

gochannelpackagemainimport( "fmt" "sync")//----------------------------channel状态表--------------------------/*操作 Channel状态 结果-----------------------------------------Read nil 阻...

2019-08-19 14:07:15

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。