「linux」实例浅析epoll的LT和ET模式,ET模式为何要使用非阻塞IO

一.概念我们通俗一点讲:Level_triggered(水平触发):当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据一次性全部读写完(如读写缓冲区太小),那么下次调用 epoll_wait()时,它还会通知你在上没读写完的文件描述符上继续读写,当然如果你一直不去读写,它会一直通知你!!!如果系统中有大量你不需要读写的就绪文件描述符,而它们每次都会返回,这样会大大降低处理程序检索自己关心的就绪文件描述符的效率!!!Edge_triggere...阅读全文

简书 2020-09-16 22:32:45 linux大本营

go语言中一些字符串操作介绍

按单个/多个字符分割字符串按指定内容切割字符串 str := "hello world" res0 :=strings.Split(str,"w") fmt.Println(res0)//[hello orld] 字符串str以;结尾进行分割 str := "hello;world;" res1 := strings.SplitAfter(str,";")//[hello; world; ] fmt.Println(res1) 判断str中是否包含某字符串返回bool类型,没有时为false s...阅读全文

简书 2020-09-16 22:32:38 MO_ON_e503

Golang标准库——builtin

builtin builtin 包为Go的预声明标识符提供了文档。此处列出的条目其实并不在builtin包中,对它们的描述只是为了让 godoc 给该语言的特殊标识符提供文档。 Constants const ( true = 0 == 0 // 无类型布尔值 false = 0 != 0 // 无类型布尔值 ) true 和false是两个无类型布尔值。 const iota = 0 // 无类型整数值 iota是一个预定义的标识符,代表顺序按行增加的无符号整数,每个const声明单元(被括号...阅读全文

简书 2020-09-16 22:32:37 DevilRoshan

golang基础数据类型

一、整型使用细节分有符号和无符号,int unit 的大小和系统有关var a int = 6 // 64 位操作系统 a 的符号为 int64整型默认声明为intvar a = 100 // a 的类型为intbyte 等价于int8,无符号,范围0-255,一般存储字符rune 等价于int32,有符号,表示一个Unicode码,处理带有中文的字符串二、浮点数使用细节有固定范围和字段长度,不受具体OS(操作系统)影响整型默认声明为float64var a = 0.34 // a 的类型为fl...阅读全文

Segmentfault 2020-09-20 21:32:33 binbin

TinySQL学习笔记之SelectionExec

本文以中的代码对应的tinysql项目版本号为df75611SelectionExec是tinysql第五章第一节中要补全的执行器组件,希望能够通过本文的总结来说明tinysql执行器中的一些概念。接口作为执行器组件,SelectionExec实现了Executor接口, 其定义位于tinysql/executor/executor.go L136// Executor is the physical implementation of a algebra operator. // // In ...阅读全文

Segmentfault 2020-09-20 21:32:32 Destiny池鱼

简单制作Scrapy爬虫

爬虫框架本身来说,都是很优秀的,说那个更好,不如说那个更适合公司的业务需求。scrapy是用python语言编写的一个爬虫框架也是一个常见的爬虫框架,非常好用。只需要简单采集和存储即可。自带多线程和异常处理功能Scrapy:支持分布式爬虫,扩展性强,使用简单,支持中间件机制,不支持json网页采集。制作Scrapy步骤:1、新建爬虫项目:在网络爬虫采集数据之前,需要建立一个新的Scrapy爬虫项目,然后运行爬虫。2、明确目标:确定需要采集的目标网站和数据信息,运行项目,输入指令运行代码。3、新建...阅读全文

Go语言中文网 2020-09-16 17:19:56 laical

golang mongo-driver 使用基础

BSON是什么?BSON就是二进制编码的JSON序列化数据。官网上提到的三个特点有:更轻量可转换(序列化和反序列化)更高效,因为是二进制的BSON在mongdo-driver中的应用根据上面所说的BSON的特点,MongoDB是用BSON作为主要的数据格式go.mongodb.org/mongo-driver/bson 的使用bson struct在进行mongodb操作时,经常需要一些基本的bson结构体。有四种struct可以定义bson的数据结构:bson.D{}、bson.E{}、bso...阅读全文

Segmentfault 2020-09-20 21:32:32 pascal_lin

go语言标准库里的定时器使用场景

(1)time.NewTimer,time.NewTicker,time.Tick的使用如下:package main import ( "errors" "fmt" "golang.org/x/sync/errgroup" "time" ) /** * ticker只要定义完成,从此刻开始计时,不需要任何其他的操作,每隔固定时间都会触发。 * timer定时器,是到固定时间后值只会执行一次 * 如果timer定时器要每隔间隔的时间执行,实现ticker的效果,使用 func (t *Timer...阅读全文

Segmentfault 2020-09-20 20:32:33 simamengde

种族平权运动加速 Github、Go 废除 Blacklist 命名,技术政治正确?

https://mp.weixin.qq.com/s/0HRmqi-CKz4AtEk2yruabQ By 超神经 内容提要:自 George Floyd 事件后,美国至全球各地为非洲裔人群争取权利的 Black Lives Matter活动愈演愈烈,从线下游行也扩展到了技术圈里。 关键词:blacklist master/slave 命名规则 2020 年 5 月 26 日,明尼苏达州的明尼阿波利斯市,四名美国警察暴力执法,导致 George Floyd 窒息身亡。 至今,全美已经有近 100 ...阅读全文

51CTO博客 2020-09-14 20:18:42 HyperAI超神经

Golang标准库——bufio

bufio bufio包实现了有缓冲的I/O。它包装一个io.Reader或io.Writer接口对象,创建另一个也实现了该接口,且同时还提供了缓冲和一些文本I/O的帮助函数的对象。 Constants const ( defaultBufSize = 4096 ) Variables var ( ErrInvalidUnreadByte = errors.New("bufio: invalid use of UnreadByte") ErrInvalidUnreadRune = errors....阅读全文

简书 2020-09-15 23:32:38 DevilRoshan

Golang:从VSCode转向Goland的艰难之路

人一定要有信仰,否则生活将一片黑暗 VSCode的爆红 不知道从什么时候开始,我的编程世界里多了VSCode。从接触Python、Flutter到编程C、Go…貌似VSCode无所不能,一起玩耍的兄弟们包括我也一直很喜欢的开发工具。从我出道到现在好像也就Eclipse有这种待遇,而VSCode比Eclipse好像有更高的欢迎度。 Go、Flutter入门选择VSCode 曾经网上看过一篇编程大佬的文章,他详细地介绍了VSCode,并表示他很喜欢用之开发工作。我总结了他大概的意思就是两个字——简单...阅读全文

简书 2020-09-15 18:32:38 腾哥的编程世界

对飚雪花ID,高并发下唯一订单号生成器

## 背景 产品需求是为订单生成一个10位长度的订单号,可以包含字母和数组,字母不区分大小写。 我们可能想到雪花ID,是的,雪花ID设计很巧妙,但是长度太长不满足产品的需要,不过我们可以对雪花ID改造。 ```text 0000 0000 0 0 时间戳 机器ID 序列号 ``` 我们把10位分为3组: 第一组是前8位用做时间戳,由于是字母+数字组合,所以一位就能表示36个数字,0-9a-z,也就是36进制,36^8 = 2821109907456 毫秒 > ...阅读全文

Go语言中文网 2020-09-15 17:09:53 xiaoxiaogo

种族平权运动加速 Github、Go 废除 Blacklist 命名,技术政治正确?

https://mp.weixin.qq.com/s/0HRmqi-CKz4AtEk2yruabQ By 超神经 内容提要:自 George Floyd 事件后,美国至全球各地为非洲裔人群争取权利的 Black Lives Matter活动愈演愈烈,从线下游行也扩展到了技术圈里。 关键词:blacklist master/slave 命名规则 2020 年 5 月 26 日,明尼苏达州的明尼阿波利斯市,四名美国警察暴力执法,导致 George Floyd 窒息身亡。 至今,全美已经有近 100 ...阅读全文

51CTO博客 2020-09-14 20:18:45 HyperAI超神经

GO GRPC 学习笔记01

简介: gRPC是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。 环境: WIN环境下: GO 版本1.15 其他包的信息为: github.com/golang/protobuf v1.4.2 golang.org/x/net v0.0.0-20200904194848-62affa334b73 // indirect golang.org/x/sys v0.0.0-20200915050820-6d893a6b696e // indirect golang.org/...阅读全文

简书 2020-09-15 16:32:46 小钟钟同学

Golang反转链表

反转链表 func revoert_linklist(pHead *ListNode) *ListNode { var newHead,temp *ListNode for pHead != nil { // 赋值头head到临时节点 temp = pHead // pHead移到了下一位 pHead = pHead.Next // 对新链表做头插 temp.Next = newHead // newHead前移动,准备下一次循环 newHead = temp } return newHead ...阅读全文

简书 2020-09-15 15:32:38 ES_KYW