相关疑难解决方法(0)

终身麻烦在线程之间共享引用

我有一个启动工作线程的线程,所有线程都应该永远存在.每个工作线程都维护着自己的Sockets 列表.

有些操作要求我遍历当前活动的所有套接字,但是我在尝试创建包含指向另一个列表所拥有的套接字的指针的套接字的主列表时遇到了麻烦.

use std::{str, thread};
use std::thread::JoinHandle;
use std::io::{Read, Write};
use std::net::{TcpListener, TcpStream};
use std::sync::{Arc, Mutex};
use std::ops::DerefMut;
use std::sync::mpsc::{channel, Sender, Receiver, TryRecvError};
use self::socketlist::SocketList;
use self::mastersocketlist::MasterSocketList;

pub struct Socket {
    user: String,
    stream: TcpStream,
}

mod socketlist {
    use self::SocketList::{Node, End};
    use super::Socket;

    pub enum SocketList {
        Node(Socket, Box<SocketList>),
        End,
    }

    impl SocketList {
        pub fn new() -> SocketList {
            End
        }

        pub fn add(self, socket: Socket) -> SocketList {
            Node(socket, Box::new(self))
        }

        pub fn newest<'a>(&'a …
Run Code Online (Sandbox Code Playgroud)

lifetime rust

9
推荐指数
1
解决办法
3600
查看次数

对于接受函数并返回另一个返回线程句柄的函数,函数类型签名应该是什么?

我正在尝试编写一个函数parallelize,该函数将函数作为参数B并返回一个函数C,其中C返回一个正在运行的线程的句柄B.我明白这可能是笨重或荒谬的; 它主要是作为一个学习项目.更高级别的目标是在迭代器上实现并行映射函数,其中列表的每个元素将映射到不同的线程(或最终可能通过线程池).我很快就意识到我已经超越了我的头脑.鉴于我所描述的,这种类型应该parallelize是什么?

parallel-processing rust

1
推荐指数
1
解决办法
54
查看次数

标签 统计

rust ×2

lifetime ×1

parallel-processing ×1