美文网首页
Rust编程语言-16-无惧并发

Rust编程语言-16-无惧并发

作者: onemoremile | 来源:发表于2022-02-05 21:05 被阅读0次

使用线程并行执行代码

使用spawn 创建线程

use std::thread;
use std::time::Duration;

fn main() {
    let handler = thread::spawn(|| {
        for i in 1..10 {
            println!("hi number {} from the spawned thread!", i);
            thread::sleep(Duration::from_millis(1));
        }
    });

    for i in 1..5 {
        println!("hi number {} from the main thread!", i);
        thread::sleep(Duration::from_millis(1));
    }
    handler.join().unwrap();
}

使用thread::spawn,传递一个闭包closure进来
join()方法确保handler的线程都能执行完

使用move在线程间传递数据

use std::thread;

fn main() {
    let v = vec![1, 2, 3];

    let handle = thread::spawn(move || {
        println!("Here's a vector: {:?}", v);
    });

    handle.join().unwrap();
}

上面的代码使得在线程的spawn的闭包的逻辑代码里,可以捕获变量v的值并使用它

使用消息在线程间传递数据

use std::sync::mpsc;
use std::thread;

fn main() {
    let (tx, rx) = mpsc::channel();

    thread::spawn(move || {
        let val = String::from("hi");
        tx.send(val).unwrap();
    });

    let received = rx.recv().unwrap();
    println!("Got: {}", received);
}

标准库中的mpsc-多个producer,一个消费者

多个生产者

let (tx, rx) = mpsc::channel();

let tx1 = tx.clone();

接下来就在两个线程里在tx,tx1上发送消息,在rx上接收消息

相关文章

  • Rust编程语言-16-无惧并发

    使用线程并行执行代码 使用spawn 创建线程 使用thread::spawn,传递一个闭包closure进来jo...

  • Rust 语言中文版

    Rust 是 Mozilla 开发的注重安全、性能和并发性的编程语言。Rust 是针对多核体系提出的语言,并且吸收...

  • Rust 语言中文版

    Rust 是 Mozilla 开发的注重安全、性能和并发性的编程语言。Rust 是针对多核体系提出的语言,并且吸收...

  • Rust 1.7 稳定版发布

    Rust 1.7 正式发布,Rust 是一个系统编程语言,专注于安全,速度和并发。 可以从官网直接安装 Rust ...

  • Rust 学习资源

    Rust编程语言 Rust编程语言(https://doc.rust-lang.org/book/[https:/...

  • rust初探

    笔者目前接触到的编程语言很多。 最近在了解rust,怎样通过rust去构建业务系统呢。 使用rust的理由 无gc...

  • 【宇宙条-base上海】职位:Rust工程师

    作为一门系统编程语言,Rust 一直致力于解决高并发和高安全性系统等问题。 和老牌的 C++ 相比,Rust 的性...

  • Rust编程语言汇总

    Rust编程语言中文官网

  • Rust入坑指南:齐头并进(下)

    前文中我们聊了Rust如何管理线程以及如何利用Rust中的锁进行编程。今天我们继续学习并发编程, 原子类型 许多编...

  • 如何在Linux中安装Rust编程语言

    在Linux中安装Rust编程语言 在Linux中安装Rust ``` curl --proto '=https'...

网友评论

      本文标题:Rust编程语言-16-无惧并发

      本文链接:https://www.haomeiwen.com/subject/dqvskrtx.html