oqueue:非交织多线程输出队列

时间:2024-05-29 23:30:52
【文件属性】:

文件名称:oqueue:非交织多线程输出队列

文件大小:18KB

文件格式:ZIP

更新时间:2024-05-29 23:30:52

Rust

非交织输出队列 防止任务输出交错的机制,同时仍允许任意数量的任务进行,即使当前正在打印输出的任务除外。 [ dependencies ] oqueue = " 0.1 " 用例 这个板条箱解决了一个看似狭窄的用例,但这是我在几种不同情况下遇到的一个用例。 假设我们有一些令人尴尬的并行工作负载,其中每件工作都可能要写到stdout / stderr。 如果我们只是天真地并行处理,则来自不同任务的输出将交错并最终变得不可读。 如果我们使每个任务锁定输出流,完成其工作然后解锁,则可以避免交错,但是任务不再可以并行运行。 如果我们让每个任务将其输出写到本地缓冲区中,并在最后自动进行打印,则所有输出都将不必要地延迟,并且应用程序可能会感觉混乱和无响应,因为没有实时看到任何输出。 客观的 我们有一个有序的任务序列0..N。 我们要接收任务0的所有输出,然后依次接收任务1的所有输出,依此类推。


【文件预览】:
oqueue-master
----LICENSE-MIT(1023B)
----LICENSE-APACHE(11KB)
----.github()
--------workflows()
----.clippy.toml(16B)
----src()
--------sequencer.rs(8KB)
--------task.rs(4KB)
--------sync.rs(432B)
--------lib.rs(6KB)
----Cargo.toml(544B)
----examples()
--------readme.rs(2KB)
----.gitignore(30B)
----.cargo()
--------config(51B)
----README.md(6KB)

网友评论