在阅读了这些std::thread::Builder
和std::thread::spawn
后,我了解他们之间的差异(或多或少),但建议始终使用std::thread::Builder
?
我不明白为什么有两个;有人可以向我解释什么时候最好使用其中一个?在某些情况下,或许不能或不应该使用其中一种?
libav
9.18
答案 0 :(得分:6)
documentation for thread::Builder
通过列出与thread::spawn
不直接对应的所有功能和类型来回答您的所有问题:
fn name(self, name: String) -> Builder
命名要成为的线程。目前,该名称用于识别 只在恐慌信息中。
fn stack_size(self, size: usize) -> Builder
设置新线程的堆栈大小。
fn spawn<F, T>(self, f: F) -> Result<JoinHandle<T>> where F: FnOnce() -> T, F: Send + 'static, T: Send + 'static
...
与spawn free函数不同,此方法产生
io::Result
捕获在操作系统级别创建线程的任何失败。
所以thread::Builder
允许您:
如果您不关心其中任何一个,请使用thread::spawn
。