Logo

分类:Rust

5 篇文章

spawn_blocking和spawn的区别

简介spawn_blocking专用于执行阻塞的函数,比如需要执行一个非常复杂的计算,极其耗CPU。spawn就是用于执行异步函数特点两者分别使用不同的事件队列max_blocking_threads()worker_threads()分别设置spawn_blocking和spawn调度用的工作线程...

为何异步能提高并发量

前置条件一个工作线程,负责执行异步函数异步函数Fun,无限阻塞,用不返回异步函数Func1,阻塞3秒use tokio::{runtime, task};use tokio::io::AsyncReadExt;use tokio::time::{Duration, sleep};async fn F...

设置调度线程数

说明设置运行时将使用的工作线程数量。这个数字可以是大于0的任何数字,但建议将这个值保持在较小的范围内。这将覆盖从环境变量TOKIO_WORKER_THREADS读取的值。use tokio::runtime;// This will spawn a work-stealing runtime wit...

单链表

use std::{ borrow::BorrowMut, cell::{RefCell, RefMut}, ops::Deref, rc::Rc,};struct Node { val: u32, next: Option<Rc<RefCell&lt...

Ownership

含义拥有对某块内存区域的读写权限,同时也有义务释放该内存区域共享引用fn main() { let x = std::string::String::from("HelloWorld"); //x拥有对内存区域("HelloWorld")的读写权限 ...