上一页 1 ··· 73 74 75 76 77 78 79 80 81 ··· 234 下一页

2020年4月2日

python分布式环境下的限流器

摘要: 项目中用到了限流,受限于一些实现方式上的东西,手撕了一个简单的服务端限流器。 服务端限流和客户端限流的区别,简单来说就是: 1)服务端限流 对接口请求进行限流,限制的是单位时间内请求的数量,目的是通过有损来换取高可用。 例如我们的场景是,有一个服务接收请求,处理之后,将数据bulk到Elastics 阅读全文

posted @ 2020-04-02 19:57 ExplorerMan 阅读(321) 评论(0) 推荐(0)

golang 函数作为参数传递(回调)

摘要: 和其他很多语言一样,golang中函数也可以作为其它函数的参数进行传递,然后在其它函数内调用执行,一般称之为回调。 语法:以函数签名作为主调函数的形参的类型,即传递一个指向函数的指针 func main() { sayhello("john", addperfix)} func addperfix( 阅读全文

posted @ 2020-04-02 18:31 ExplorerMan 阅读(2211) 评论(0) 推荐(0)

go 单向通道

摘要: func GetCha(cha <-chan int) { //这里参数用了一个单向通道 只允许接收 for{ if v,ok := <-cha; ok{ fmt.Println(v) } } //cha <- 2 这里会发生编译错误 } func main() { cha := make(chan 阅读全文

posted @ 2020-04-02 18:30 ExplorerMan 阅读(266) 评论(0) 推荐(0)

go channel select如何屏蔽已关闭通道

摘要: go channel select如何屏蔽已关闭通道(如果不屏蔽的话,select 一直会处于选择状态) func main() { channel := make(chan int ,20) selectChannel(channel) getChannel(channel) time.Sleep 阅读全文

posted @ 2020-04-02 18:29 ExplorerMan 阅读(658) 评论(0) 推荐(0)

go err

摘要: golang自定义err方案很多 // Errno 代表某种错误的类型 type Errno int func (e Errno) Error() string { return "errno " + strconv.Itoa(int(e)) } func main(){ // 示例3。 const 阅读全文

posted @ 2020-04-02 18:27 ExplorerMan 阅读(229) 评论(0) 推荐(0)

golang 做了个mutex与atomic性能测试

摘要: func BenchmarkMutex(b *testing.B) { var number int lock := sync.Mutex{} for i:=0; i< b.N;i++{ go func() { defer lock.Unlock() lock.Lock() number++ }() 阅读全文

posted @ 2020-04-02 18:24 ExplorerMan 阅读(622) 评论(0) 推荐(0)

Go语言中的条件变量

摘要: Go语言sync package提供了条件变量(condition variable)类型: type Cond struct { // L is held while observing or changing the condition L Locker // contains filtered 阅读全文

posted @ 2020-04-02 18:21 ExplorerMan 阅读(247) 评论(0) 推荐(0)

golang 百万级请求

摘要: 我在不同公司从事反爬虫、反病毒、反恶意程序已经有15年了,我知道,由于每天需要处理和应对的大量数据,这些系统最终会因此变得十分复杂。 目前我是smsjunk.com的CEO以及KnowBe4的首席架构师,两家公司都是活跃与网络安全行业。 有趣的是在过去10年作为一名软件工程师,几乎所有我参与的后端开 阅读全文

posted @ 2020-04-02 18:16 ExplorerMan 阅读(583) 评论(0) 推荐(0)

golang strings.NewReader

摘要: 为什么说strings.Reader类型的值可以高效地读取字符串 与strings.Builder类型恰恰相反,strings.Reader类型是为了高效读取字符串而存在的。后者的高效主要体现在它对字符串的读取机制上,它封装了很多用于在string值上读取内容的最佳实践。 strings.Reade 阅读全文

posted @ 2020-04-02 18:07 ExplorerMan 阅读(971) 评论(0) 推荐(0)

golang strings.Builder

摘要: strings.Builder类型的值(以下简称Builder值)的优势有下面的三种: 已存在的内容不可变,但可以拼接更多的内容; 减少了内存分配和内容拷贝的次数; 可将内容重置,可重用值。 先来说说string类型。 我们都知道,在 Go 语言中,string类型的值是不可变的。 如果我们想获得一 阅读全文

posted @ 2020-04-02 18:06 ExplorerMan 阅读(3069) 评论(0) 推荐(0)

上一页 1 ··· 73 74 75 76 77 78 79 80 81 ··· 234 下一页

导航