Tokio- Rust 异步编程框架(tokio组合)

网友投稿 2038 2022-10-10

Tokio- Rust 异步编程框架(tokio组合)

Tokio- Rust 异步编程框架(tokio组合)

Tokio 是 Rust 中的异步编程框架,它将复杂的异步编程抽象为 Futures、Tasks 和 Executor,并提供了 Timer等基础设施。Tokio 快速、可靠,且可扩展。

Tokio 是一个事件驱动的非阻塞 I/O 平台,用于使用 Rust 编程语言编写异步应用。在高层设计上,它提供了一些主要组件:

多线程、工作窃取(work-stealing)的 task scheduler 。由操作系统的事件队列(epoll,kqueue,IOCP 等)支撑的 reactor 。异步 TCP 和 UDP 套接字。

这些组件提供构建异步应用所需的运行时组件。

示例

extern crate tokio;use tokio::prelude::*;use tokio::io::copy;use tokio::net::TcpListener;fn main() {    // Bind the server's socket.    let addr = "127.0.0.1:12345".parse().unwrap();    let listener = TcpListener::bind(&addr)        .expect("unable to bind TCP listener");    // Pull out a stream of sockets for incoming connections    let server = listener.incoming()        .map_err(|e| eprintln!("accept failed = {:?}", e))        .for_each(|sock| {            // Split up the reading and writing parts of the            // socket.            let (reader, writer) = sock.split();            // A future that echos the data and returns how            // many bytes were copied...            let bytes_copied = copy(reader, writer);            // ... after which we'll print what happened.            let handle_conn = bytes_copied.map(|amt| {                println!("wrote {:?} bytes", amt)            }).map_err(|err| {                eprintln!("IO error {:?}", err)            });            // Spawn the future as a concurrent task.            tokio::spawn(handle_conn)        });    // Start the Tokio runtime    tokio::run(server);}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Lisp-Quickproject- Lisp 工程框架脚手架库
下一篇:分布式医疗挂号系统Nacos微服务Feign远程调用数据字典
相关文章

 发表评论

暂时没有评论,来抢沙发吧~