文章394
标签223
分类53
Go实现HTTP断点续传多线程下载

Go实现HTTP断点续传多线程下载

Golang实现自定义协程池

Golang实现自定义协程池

在某些场景下,我们需要连接池的实现来避免每次使用组件都重新创建连接,以提升效率;但是某些情况下我们所使用的组件并未提供连接池给我们使用(例如消息队列nsq),这个时候我们就需要一个能够自定义的连接池来面对各种需要协程池的场景!

本文首先分析了几种常见连接池的实现方式,最后实现了一个开箱即用的自定义的连接池;

源代码:


使用gowatch热部署提升你的开发效率

使用gowatch热部署提升你的开发效率

相信大家在进行前端开发的时候,都使用过热部署;修改完代码,保存一下即可看到效果;

而现在Golang也可以实现这样的功能了;只需要使用gowatch即可!

源代码:


初探Go-WebAssembly

初探Go-WebAssembly

WebAssembly作为一项新的技术,允许其他后台语言编译出.wasm格式的字节码文件,供浏览器和JS调用;Go言在1.11版本(2018年8月)加入了对WebAssembly(Wasm)的原生支持,使用 Go 语言开发WebAssembly相关的应用变得更加地简单;

本文从一个Hello-World的例子开始,带大家初探如何使用Golang开发WebAssembly;

源代码:

Golang中的context

Golang中的context

Go语言提供了Context标准库可以解决并发控制的问题,Context的作用和它的名字很像,上下文,即子协程的下上文;

本文就来讲解Golang中的context的用法;

源代码:

在Golang中使用nil调用方法

在Golang中使用nil调用方法

我们知道,在Java或是C++中,如果某个对象是空指针,则调用这个对象的方法会导致空指针错误;但是在Golang中我们却可以使用nil来调用方法;

源代码:


使用Golang建立一个简单的全文搜索引擎

使用Golang建立一个简单的全文搜索引擎

全文搜索是我们每天都在不知不觉中使用的工具之一。如果你曾经在google上搜索过“golang coverage report”或试图在电商网站上搜索“indoor wireless camera”,你就会使用全文搜索

全文搜索(FTS, Full-Text Search)是一种在文档集合中搜文本的技术。文档可以引用网页、报纸文章、电子邮件或任何结构化文本

今天我们尝试建造我们自己的FTS引擎。在这篇文章的最后,我们将能够在不到一毫秒的时间内搜索数百万个文档。我们将从简单的搜索查询开始,比如搜索含有“cat”的文章,然后扩展引擎以支持更复杂的布尔查询

小贴士:最著名的FTS引擎是Lucene(以及在此基础上构建的Elasticsearch和Solr)

本文译自:

源代码:


使用装饰器模式给你的异步回调设置超时重试

使用装饰器模式给你的异步回调设置超时重试

在许多场景下,都需要使用异步回调;本篇讲了在Go中如何使用反射构造一个处理异步回调的函数;

源代码:

如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯

内容和博客同步更新~


golang并发素数筛-并发真的会快吗?

golang并发素数筛-并发真的会快吗?

Golang给了我们更加方便和简洁的语法实现并发操作,但是使用并发操作是需要考虑应用场景的,不考虑背景而滥用并发反而可能造成性能危机:有时并发操作并不一定比单线程的效率高;

本文首先通过素数筛方法并发计算质数,展现了golang以CSP为并发模型的并发编程特色;之后与单线程实现做对比,引出并发编程需要考虑背景的结论;

源代码:https://github.com/JasonkayZK/Go_Learn/tree/prime


使用Protobuf3和grpc实现RPC调用

使用Protobuf3和grpc实现RPC调用