高级并行性:线程池、并行迭代器和进程
在并发编程中,线程池是一种非常有用的技术,它可以帮助我们控制并发线程的数量,避免资源过度消耗。本文将详细介绍线程池的实现和使用,以及如何在Rust中构建一个线程池服务器。
线程池服务器
在处理大量并发连接时,无界线程的服务器可能会耗尽系统资源。为了解决这个问题,我们可以使用线程池来限制可用线程的数量。
项目配置
首先,我们创建一个新的项目,其 Cargo.toml 文件如下:
[package]
name = "fixed_threads_server"
version = "1.0.1"
authors = ["Brian - Trowwine <brian@trowwine.us>"]
[dependencies]
clap = "2.33"
slog = "2.7"
slog-term = "2.8"
slog-async = "2.3"
threadpool = "0.6"
[[bin]]
name = "server"
[[bin]]
name = "client"
与无界线程项目相比,主要的变化是项目名称的更改和添加了 threadpool 依赖。
服务器代码修改
服务器的前置代码只做了轻微的修改,引入了线程池库并移除了一些未使用的导入:
#[macro_use]
extern crate slo
Rust线程池与并发编程
超级会员免费看
订阅专栏 解锁全文
1062

被折叠的 条评论
为什么被折叠?



