02 2020 档案
摘要:HTTP请求格式 当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成: 请求方法 URI协议 版本 请求头(Request Header) 请求正文 下面是一个HTTP请求的例子:GET/sample.jspHTTP/1.1Accept:ima
阅读全文
摘要:原文链接:基本的 IO 接口 原文链接:方便的IO操作函数集 图片来源:图片显示来源 1. 1.1 io — 基本的 IO 接口 io 包为 I/O 原语提供了基本的接口。它主要包装了这些原语的已有实现。 由于这些被接口包装的I/O原语是由不同的低级操作实现,因此,在另有声明之前不该假定它们的并行执
阅读全文
摘要:sync.atomic atomic 提供的原子操作能够确保任一时刻只有一个goroutine对几种简单的类型进行原子操作进行操作,善用atomic能够避免程序中出现大量的锁操作。这些类型包括int32,int64,uint32,uint64,uintptr,unsafe.Pointer,共6个。这
阅读全文
摘要:Goroutine Pool架构 超大规模并发的场景下,不加限制的大规模的goroutine可能造成内存暴涨,给机器带来极大的压力,吞吐量下降和处理速度变慢。 而实现一个Goroutine Pool,复用goroutine,减轻runtime的调度压力以及缓解内存压力,依托这些优化,在大规模goro
阅读全文
摘要:Cache类型 Cache封装了一个cache类型,cache类型的参数解析: 1.defaultExpiration time.Duration 每个键值的默认过期时间。 2.items map[string]Item map类型。 3.mu sync.RWMutex map类型的读写锁。 4.j
阅读全文
摘要:wx.lib.pubsub wx.lib.pubsub模块提供了一个发布-订阅代理,让您的应用程序的部分给定主题的应用程序的其他部分的广播消息。侦听器可以是应用程序中的任何可调用对象,即函数,绑定方法,具有call的任何对象等。请注意,pubsub本身并不通过网络进行代理,而只能在应用程序内工作。
阅读全文
摘要:原文链接 作者:月小水长 前言TextCtrl 是 wxPython 框架里一个非常实用的文本输入控件,我们经常需要对 TextCtrl 做这样一个输入上的约束:只允许输入数字(比如允许 1.2、4.5、100 这些输入而禁止诸如 .8、4t等输入,方便我们在将输入的 str 类型转成 int、fl
阅读全文
摘要:原文链接 go-runtime runtime 包 提供了运行时与系统的交互,比如控制协程函数,触发垃圾立即回收等等底层操作,下面我们就运行时能做的所有事情逐个进行说明与代码演示 1.获取GOROOT环境变量 2.获取GO的版本号 3.获取本机CPU个数 4.设置最大可同时执行的最大CPU数 5.设
阅读全文
摘要:原文链接 bytes — byte slice 便利操作 该包定义了一些操作 byte slice 的便利操作。因为字符串可以表示为 []byte,因此,bytes 包定义的函数、方法等和 strings 包很类似,所以讲解时会和 strings 包类似甚至可以直接参考。 说明:为了方便,会称呼 [
阅读全文
摘要:原文链接:wxPython 教程 (十一): wxPython 应用骨架 在本节,我们将创建一些 wxPython 应用骨架 。样例脚本将只负责设计界面而非实现功能,目标是为了展示几款流行 GUI 界面如何用 wxPython 来完成。 文件管理器 我们将创建一个 叫做 File Hunter 的应
阅读全文
摘要:原文作者:shitaibin 链接:https://www.jianshu.com/p/79d27f200bcf 來源:简书 goroutine作为Golang并发的核心,我们不仅要关注它们的创建和管理,当然还要关注如何合理的退出这些协程,不(合理)退出不然可能会造成阻塞、panic、程序行为异常、
阅读全文
摘要:原文作者:shitaibin 链接:https://www.jianshu.com/p/8aa03db51043 來源:简书 Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文章,你会更好的使用Golang并发特性,提高你的程序性能
阅读全文
摘要:package main import ( "bytes" "flag" "fmt" "io" "log" "net" "os" "strings" "time" ) func main() { var srcHost, agencyHost string flag.StringVar(&srcHo
阅读全文
摘要:go 互斥锁与读写锁 互斥锁 互斥锁控制下的多个写操作之间、多个读操作之间是互斥的,并且写操作与读操作之间也是互斥的。互斥锁适用于读写不确定场景,即读写次数没有明显的区别,并且只允许只有一个读或者写的场景,所以该锁叶叫做全局锁,也就是完全互斥。互斥锁是传统的并发程序对共享资源进行访问控制的主要手段。
阅读全文
摘要:工作池与消息队列框架 Woker Pool:工作池中有固定数量的协程,每一个协程对应一个消息任务队列。 消息任务队列:消息任务队列,本质就是go中的缓冲信道,任务在缓冲信道中传输,等待被处理。 TaskQueue:消息任务队列的集合,本质就是 client Handler Reader:在这里假设为
阅读全文
摘要:目录 基本Tcp服务器 简单使用 源码 基本Tcp服务器 Server模块:服务器配置信息、启动、停止、运行、添加路由、路由管理器、链接管理器等。 链接属性配置模块:启动链接、停止链接、获取链接对象等。 消息封装:消息id、长度、内容、及消息的封包与解包等。 基础路由模块:提供路由接口及基类,开启服
阅读全文
摘要:泄露情况分类 死循环 channel 导致的泄露 传统同步机制导致的泄露 死循环 go协程单纯地陷入死循环中。 chanel 引起的泄露 发送不接收 向没有接收者的channel发送信息。我们知道,发送者一般都会配有相应的接收者。理想情况下,我们希望接收者总能接收完所有发送的数据,这样就不会有任何问
阅读全文
摘要:原文链接 目录 安装 发送请求 传递URL参数 响应内容 Json响应内容 定制请求头 BasicAuth 认证 JSON请求 Cookie 超时 关闭证书验证 调试模式 连接操作 Respone对象 安装 go get https://github.com/kirinlabs/HttpReques
阅读全文
摘要:github:https://github.com/sevenelevenlee/go-patterns Golang设计模式思想 前言 一切设计模式都是灵活应用struct的组合模式,以及go隐形继承接口的特性 go中的interface就是一些方法装饰, 而struct并不依赖于接口 设计模式类
阅读全文
摘要:原文链接 文章目录 遍历取不到所有元素指针? 遍历会停止么? 对大数组这样遍历有啥问题? 对大数组这样重置效率高么? 对 map 遍历时删除元素能遍历到么? 对 map 遍历时新增元素能遍历到么? 这样遍历中起 goroutine 可以么? 遍历取不到所有元素指针? 如下代码想从数组遍历获取一个指针
阅读全文
摘要:两种方式解决并发访问map 读写锁实现并发安全Map sync.Map 读写锁实现并发安全Map 并发访问map是不安全的。所以如果希望在多协程中并发访问map,必须提供某种同步机制,一般情况下通过读写锁sync.RWMutex实现对map的并发访问控制,将map和sync.RWMutex封装一下,
阅读全文
摘要:后续会继续更新。 Redis知识点总结 redis特点 Redis与Memcached的区别 安装配置 数据结构 客户端 持久化 淘汰策略和主键失效机制 缓存问题 Redis Sentinal(哨兵)、主从 redis Cluster redis的应用场景及实现 高级功能 性能检测与监控工具 面试题
阅读全文
摘要:Go 语言条件语句 Go 语言提供了以下几种条件判断语句: 语句描述 if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成。 if...else 语句 if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 if 嵌套语句 你可以在
阅读全文
摘要:公开的数据库 - 国家数据 - http://data.stats.gov.cn/index.htm 数据来源于中国国家统计局,包含了我国经济民生等多个方面的数据,并且在月度、季度、年度都有覆盖,较为全面和权威,对于社会科学的研究不要太有帮助。最关键的是,网站简洁美观,还有专门的可视化读物。 - C
阅读全文
摘要:作者:Gundy_链接:https://www.jianshu.com/p/dc94f2099277 生产者消费者模型 并发编程中最常见的例子就是生产者消费者模式,该模式主要通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。简单地说,就是生产者生产一些数据,然后放到成果队列中,同时
阅读全文
摘要:文件打开与关闭 文件打开 原始的文件打开函数: func OpenFile(name string, flag int, perm FileMode) (*File, error) name:绝对路径或相对路径(相对于进程当前工作目录)flag:指定文件的访问模式,在os中这些参数被定义为常量 co
阅读全文
摘要:序列化与反序列化 package main import ( "encoding/json" "fmt" ) //JSON的序列化 //将结构体构成数据,并转JSON //将map[string]interface{}构成数据,并转JSON //使用map切片构成数据,并转JSON //json.c
阅读全文
摘要:原文链接 简介 twelve-factor应用提倡将配置存储在环境变量中。任何从开发环境切换到生产环境时需要修改的东西都从代码抽取到环境变量里。但是在实际开发中,如果同一台机器运行多个项目,设置环境变量容易冲突,不实用。godotenv库从.env文件中读取配置, 然后存储到程序的环境变量中。在代码
阅读全文
摘要:logger包介绍 logger支持功能 logger支持自定义时间格式; logger支持不同的日志等级输出,能够有效提高日志输出性能和检索; logger支持控制台+文件+网络的三种方式输出,并且可以任意组合; logger支持控制台输出颜色区分; logger支持文本输出的自定制; logge
阅读全文
摘要:作者:waynehu 地址:go语言的time包 go语言的time包 ##组成 time.Duration(时长,耗时) time.Time(时间点) time.C(放时间点的管道)[ Time.C:=make(chan time.Time) ] time包里有2个东西,一个是时间点,另一个是时长
阅读全文
摘要:原文链接 摘录一: Go 1.3 的 sync 包中加入一个新特性:Pool。 官方文档可以看这里 http://golang.org/pkg/sync/#Pool 这个类设计的目的是用来保存和复用临时对象,以减少内存分配,降低CG压力。 1 2 3 4 type Pool func (p *Poo
阅读全文
摘要:背景 数据可视化是数据分析中比较重要的一个技能,是为了将数据分析的结果表达的更形象化、专业化且突出重点。 概况来说,数据可视化需要根据数据的特征以及性质,找到合适的方式将数据直观的展现出来,这样方便大家阅读并且找到数据中隐含的信息。 那今天安利两个在线的可视化工具网站。 Chartify 官网:ht
阅读全文
摘要:字节序 字节序就是多字节数据类型 (int, float 等)在内存中的存储顺序。在网络传输中基于文本类型的协议(比如 JSON)和二进制协议都是字节通信,是采用字节序进行数据包的处理。 字节序可分为大端序,低地址端存放高位字节;小端序与之相反,低地址端存放低位字节。 在计算机内部,小端序被广泛应用
阅读全文
摘要:一、new 函数原型:func new(Type) *Type函数作用:用来分配内存,只有是一个参数,参数为类型,它的返回值是一个指向新分配类型的指针,并且内存置为零。 package main import "fmt" func main() { test1 := new(int)//创建int类
阅读全文
摘要:TCP服务端 go语言中可以每次建立一次链接就创建一个goroutine去处理,使用goroutine实现并发非常方便和高效。 TCP服务端程序的一般处理流程1.建立并绑定 Socket:首先服务端使用 socket() 函数建立网络套接字,然后使用 bind() 函数为套接字绑定指定的 IP 和端
阅读全文
摘要:pdfkit与wkhtmltopdf介绍 pdfkit pdfkit,把HTML+CSS格式的文件转换成PDF格式文档的一种工具。 wkhtmltopdf pdfkit是基于wkhtmltopdf的python封装,支持URL,本地文件,文本内容到PDF的转换,所以使用pdfkit需要下载wkhtm
阅读全文
摘要:原文:Go中的各种变量类型转换 Go中的各种变量类型转换 从PHP转向GO,最不能适应的是GO是强类型语言,变量的申明需要指定其类型,相同的变量之间才可以做算术、关系、逻辑等运算。 一、string类型 intint8int16int32int64 string转换成这5种类型,需要先使用 strc
阅读全文
摘要:原文:https://gitee.com/GuaikOrg/go-snowflake Snowflake简介 在单机系统中我们会使用自增id作为数据的唯一id,自增id在数据库中有利于排序和索引,但是在分布式系统中如果还是利用数据库的自增id会引起冲突,自增id非常容易被爬虫爬取数据。在分布式系统中
阅读全文
摘要:go面向接口编程知识点 接口定义与格式 隐式实现及实现条件 接口赋值 空接口 接口嵌套 类型断言 多态 接口定义与格式 接口(interface)是一种类型,用来定义行为(方法)。这句话有两个重点,类型和定义行为。 首先解释定义行为:接口即一组方法定义的集合,定义了对象的一组行为,就是定义了一些函数
阅读全文
摘要:Go test工具 Go语言中测试依赖go test命令。go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的源代码文件都是go test 测试的一部分,不会被go build编译到最终的可执行文件中。 测试函数类型在*_test.go文件中有
阅读全文
摘要:作者:大雄good链接:https://www.jianshu.com/p/f2a429aa5963 collections collections为python提供了一些加强版的数据结构,当前有: >>> collections.__all__ ['deque', 'defaultdict', '
阅读全文
摘要:Go语言中type的用法: 1.定义结构体类型2.类型别名3.定义接口类型4.定义函数类型 1.定义结构体类型 结构体可用于用户自定义数据类型和进行面向对象编程。 type Person struct { name string age int sex bool } func (p *Person)
阅读全文
摘要:字符数组与字符串 1.C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串。2.字符串结束标志'\0',c语言中字符串总是以'\0'作为结尾。3.字符串会自动在结尾补'\0'。4.用字符数组存储字符串时,要特别注意'\0',要为'\0'留个位置,所以字符数组的长
阅读全文
摘要:字符串算法 字符串翻转 字符串旋转 数字转字符串 字符串转数字 回文字符串判断 字符串包含 字符串删除 字符串哈希 字符串压缩 十进制数转十六进制数 字符串替换 字符串匹配 第一个只出现一次的字符 字符串翻转 第一种方法: #include <stdio.h> #include <string.h>
阅读全文
摘要:原则:尽量不要返回一个局部变量的指针或引用,因为函数执行完之后,将释放分配给局部变量的存储空间,局部变量只是临时的存储空间,此时,对局部变量的引用和地址就会返回不确定的内存,但可以返回局部变量本身,局部变量实际上是返回变量值的拷贝,虽然在函数调用结束后所在内存会被释放回收掉,但返回值不是地址,而是局
阅读全文
摘要:原文链接:Python控制键盘鼠标pynput的详细用法 作者:botoo pynput这个库让你可以控制和监控输入设备。 对于每一种输入设备,它包含一个子包来控制和监控该种输入设备: pynput.mouse:包含控制和监控鼠标或者触摸板的类。 pynput.keyboard:包含控制和监控键盘的
阅读全文
摘要:简介:wxpython写的HTTP请求交互式工具,现在只支持Get、Post两种方式。 主程序: import wx import numpy from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanva
阅读全文
摘要:Python有个自带的工具可以生成Python的项目文档叫pydoc,但是我觉得最好用的还是Python-Sphinx,这里我们就讲一下python-Sphinx的使用。 Sphinx可以自动获取代码中的(''' ''' 注释),自动生成文档。 先看看最后要成为的效果,先提起你的兴趣 安装Sphin
阅读全文
摘要:googletrans 是一个免费的、可调用Google Translate API接口的python库。它借助Google Translate Ajax API接口来实现文本的检测和翻译。 googletrans 的基本用法可以参考文档连接:http://py-googletrans.rtfd.i
阅读全文
摘要:使用内置数据类型 内置数据类型非常快,尤其是与我们自定义的类型相比。 这主要是因为内置的数据类型是由 C 实现的,而在 Python 中写的代码运行速度实在无法与之相比。 尽量使用内置函数,去掉属性访问 import math import time def func(): lst = [] for
阅读全文
摘要:Python 的代码补全工具 Kite,它可以帮助广大开发者在敲代码时,实时生成与上下文相关的代码片段。 这不仅大大提高了代码敲写效率,同时也让开发者能更轻松地完成更复杂、更多字符的代码语句。Python 之父 Guido van Rossum 用后,也非常喜爱这个功能,向大家强烈推荐了这一高效工具
阅读全文
摘要:参考:https://blog.csdn.net/u014281392/article/details/73611624 import matplotlib.pyplot as plt ## 导入画图模块 from matplotlib.pylab import date2num ## 导入日期到数
阅读全文
摘要:talib介绍 Python 金融指数处理库TA-LIB,他是基于 Cython,而不是 SWIG。 TA-Lib is widely used by trading software developers requiring to perform technical analysis of fin
阅读全文
摘要:pyecharts:官方文档 我们这里使用pyecharts模块进行绘图。 pyecharts 项目包含了一系列的地理地图数据,这些数据或者已经内置,或者需要额外安装和加载,我们需要下载下面六个包。 选择自己需要的安装 pip install echarts-countries-pypkg pip
阅读全文
摘要:转载地址:让PIP源使用国内镜像,提升下载速度和安装成功率。 作者:microman 对于Python开发用户来讲,PIP安装软件包是家常便饭。但国外的源下载速度实在太慢,浪费时间。而且经常出现下载后安装出错问题。所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成功率。 国内源
阅读全文
摘要:原文:Artist tutorial 译者:飞龙 协议:CC BY-NC-SA 4.0 matplotlib API 有三个层级。 matplotlib.backend_bases.FigureCanvas是绘制图形的区域,matplotlib.backend_bases.Renderer是知道如何
阅读全文
摘要:matplotlib.pyplot是一个命令风格函数的集合,使matplotlib的机制更像 MATLAB。 每个绘图函数对图形进行一些更改:例如,创建图形,在图形中创建绘图区域,在绘图区域绘制一些线条,使用标签装饰绘图等。在matplotlib.pyplot中,各种状态跨函数调用保存,以便跟踪诸如
阅读全文