Golang worker pool 实现

worker pool 的设计常用来加速处理执行较耗时的重任务,且为了避免 goroutine 的过度创建,需要指定工作池的大小。使用 golang 的 goroutine 与 chan,数行代码即可实现一个简单的工作池。

阅读更多

Golang channel 使用小结

以常规方式编写并发程序,需要对共享变量作正确的访问控制,处理起来很困难。而 golang 提出一种不同的方式,即共享变量通过 channel 传递,共享变量从不被各个独立运行的线程(goroutine)同时享有,在任一时刻,共享变量仅可被一个 goroutine 访问。所以,不会产生数据竞争。并发编程,golang 鼓励以此种方式进行思考,精简为一句口号——“勿通过共享内存来进行通信,而应通过通信来进行内存共享”。

阅读更多

LeetCode 6 Z字形变换

1 题目描述 给定字符串,以Z字形显示。如"PAYPALISHIRING"以给定行数为3的Z字形显示为: 然后从左到右一行一行拼起来为:“PAHNAPLSIIGYIR”。 现在,传入一个字符串及行数,请编写代码求该字符串的Z字形变换。

阅读更多