文章506
标签266
分类65
控制Goroutine数量的方法

控制Goroutine数量的方法

在我们写代码的时候,经常会有批量创建任务并等待返回的场景;此时使用生产消费者并发的提交任务来代替for循环逐个执行任务能够大大提高代码效率;

然而不加限制的创建Goroutine也是会有内存溢出、CPU切换过多等资源浪费的情况;

本文讲述了Go中一些常用的控制Goroutine数量的方法;

源代码:


Rust中的PhantomType

Rust中的PhantomType

在Git项目中增加pre-commit校验

在Git项目中增加pre-commit校验

有些编程语言提供了代码格式化检查等工具,如:Go、Rust等,我们可以在commit之前,对代码进行格式化检查,保证代码规范,而pre-commit正是这样的工具;


Rust实现WebAssembly初窥

Rust实现WebAssembly初窥

最近在学习Rust,而Rust和WebAssembly的结合正在如火如荼的进行着;相比于Go,Rust和WebAssembly的结合可以说是更加成熟,包括了编译优化、甚至编译完成可以一键发布到npm库;

本文讲述了如何使用Rust实现一个Hello-World的WebAssembly;

关于Go实现WebAssembly,见:

源代码:


在Golang发生Panic后打印出堆栈信息

在Golang发生Panic后打印出堆栈信息

虽然用了比较长时间的Golang,但是还是有很多不懂得地方;比如,最近我才发现,原来通过recover函数拦截的err并不会返回堆栈信息,而是仅仅返回类似于“空指针错误”的信息,基本上没什么用,更没法定位到底是哪行代码发生了panic十分鸡肋;

最后经过查找网上的资料发现,可以通过runtime包获取到堆栈信息;

源代码:


Docker原理实战-4:容器Container

Docker原理实战-4:容器Container

【分享】Epic-Game自动领取Docker镜像

【分享】Epic-Game自动领取Docker镜像

Docker原理实战-3:UnionFS

Docker原理实战-3:UnionFS

Docker原理实战-2:Cgroups

Docker原理实战-2:Cgroups

Docker原理实战-1:Namespace

Docker原理实战-1:Namespace