pub struct Scope<'scope, 'env: 'scope> { /* private fields */ }
Expand description
在其中生成作用域线程的作用域。
有关详细信息,请参见 scope
。
Implementations§
source§impl<'scope, 'env> Scope<'scope, 'env>
impl<'scope, 'env> Scope<'scope, 'env>
sourcepub fn spawn<F, T>(&'scope self, f: F) -> ScopedJoinHandle<'scope, T>where
F: FnOnce() -> T + Send + 'scope,
T: Send + 'scope,
pub fn spawn<F, T>(&'scope self, f: F) -> ScopedJoinHandle<'scope, T>where F: FnOnce() -> T + Send + 'scope, T: Send + 'scope,
在作用域中产生一个新线程,为其返回一个 ScopedJoinHandle
。
与非作用域线程不同,使用此函数生成的线程可以从作用域外部借用非 'static
的数据。
有关详细信息,请参见 scope
。
连接句柄提供了一个 join
方法,可以用来连接新生成的线程。
如果生成的线程发生 panic,join
返回一个包含 panic 载荷的 Err
。
如果连接句柄被丢弃,则派生的线程将在作用域的末尾隐式连接。
在这种情况下,如果派生的线程出现 panic,scope
将在所有线程加入后出现 panic。
这个调用将使用 Builder
的默认参数创建一个线程。
如果要指定栈大小或线程名,请改用 Builder::spawn_scoped
。
Panics
如果操作系统无法创建线程,就会出现 panics。使用 Builder::spawn_scoped
从此类错误中恢复。