最近我的同事在使用uber-go/ratelimit这个限流库的时候,遇到了两个大bug。这两个bug都是在这个库的最新版本(v0.3.0
)中存在的,而这个版本从7月初发布都已经过半年了,都没人提bug,难道大家都没遇到过么?
2023年 Go 并发库的变化综述
2023年来, Go的并发库又有了一些变化,这篇文章是对这些变换的综述。小细节的变化,比如typo、文档变化等无关大局的变化就不介绍了。
Rust并发编程番外篇: Mutex内部实现
Mutex是最常用的一种同步原语,它提供了互斥锁的功能,多线程可以互斥访问共享数据以及通过锁保护临界区。Rust标准库提供了Mutex的实现,接下来我们看看它是怎么实现的。
iptables 以及 Go操作库
iptables
是 Linux 系统中的一个非常强大的防火墙工具,它可以用于过滤、修改、重定向和处理网络数据包。iptables 是基于 Netfilter 框架的,Netfilter 是 Linux 内核的一部分,它提供了在内核级别处理网络数据包的能力。
如何在Go语言中实现Unix风格的进程管道?
今天看到包云岗老师的一条微博:
Rust并发编程5 - 基本并发原语
同步是多线程程序中的一个重要概念。在多线程环境下,多个线程可能同时访问某个共享资源,这就可能导致数据竞争或者数据不一致的问题。为了保证数据安全,需要进行同步操作。
常见的同步需求包括:
- 互斥:线程在使用共享资源时,同一时刻只允许一个线程访问共享资源,在一个线程使用时,其他线程需要等待,不能同时访问,需要互斥访问。
- 限制同时访问线程数:对某些共享资源,可能需要限制同一时刻访问的线程数。
- 线程间通信:一个线程需要基于另一个线程的处理结果才能继续执行,需要线程间通信。
- 有序访问:对共享资源的访问需要按某种顺序进行。
Rust并发编程4 - 容器类并发原语
Rust 在并发编程方面有一些强大的原语,让你能够写出安全且高效的并发代码。最显著的原语之一是 ownership system,它允许你在没有锁的情况下管理内存访问。此外,Rust 还提供了一些并发编程的工具和标准库,比如线程、线程池、消息通讯(mpsc等)、原子操作等,不过这一章我们不介绍这些工具和库,它们会专门的分章节去讲。这一章我们专门讲一些保证在线程间共享的一些方式和库。
并发原语内容较多,分成两章,这一章介绍Cow
、beef::Cow
、Box
、 Cell
、RefCell
、OnceCell
、LazyCell
、LazyLock
和 Rc
。 我把它们称之为容器类并发原语,主要基于它们的行为,它们主要是对普通数据进行包装,以便提供其他更丰富的功能。