rust-线程
29.多线程
现代的操作系统,是一个多任务操作系统,系统可以管理多个程序的运行,一个程序往往有一个或多个进程,而一个进程则有一个或多个线程。
让一个进程可以运行多个线程的机制叫做多线程。
一个进程一定有一个主线程,主线程之外创建出来的线程叫 子线程
多线程(并发)编程的一个重要思想就是 程序不同的部分可以同时独立运行互不干扰。
创建线程
1 | std::thread::spawn() |
参数 f 是一个闭包(closure ) 是线程要执行的代码。
1 | fn main() { |
当主线程执行结束,子线程就自动结束。
thread::sleep() 会让线程睡眠一段时间,某个线程睡眠的时候会让出 CPU,可以让不同的线程交替执行,要看操作系统如何调度线程。
join
上面的例子主线程结束后,子线程还没有运行完,但是子线程也结束了。如果想让子线程结束后,主线程再结束,我们就要使用Join 方法,把子线程加入主线程等待队列。
1 | spawn<F, T>(f: F) -> JoinHandle<T> |
1 | //子线程 |
输出结果看 主线程让子线程执行完毕后,主线程才退出。
| 添加微信 | 公众号更多内容 |
|---|---|
![]() |
![]() |
本博客所发布的内容,部分内容来源于网络,版权归原作者所有,如有侵权,请联系删除。转载请注明来自 面向加薪学习!




