程序执行模型。
并发及其缺陷。
作为并发执行单元的线程。
Rust如何提供线程安全性。
Rust中的并发基础知识。
其他用于处理并发的程序库。
程序执行模型
即使应用程序在后台连接网络,桌面应用程序仍然可以继续正常工作。
某个游戏程序同时更新数千个实体的状态,可在后台播放音乐并保持一致的帧速率。
一个科学的、计算量庞大的程序会分割计算过程,以充分利用计算机硬件中的所有内核。
Web服务器一次处理多个请求以最大化吞吐量。
并发
程序同时管理多个事务从而让人以为它们是同时发生的能力被称为并发,这种程序被称为并发程序。
并发和构建同时管理多个事务的程序有关,而并行是指将该程序交给多个内核处理,以增加它在一定时间内完成的工作量。
并发方法
Processes:在这种方法中,我们可以通过生成自己的独立副本来运行程序的不同部分。在Linux上,这可以通过调用fork系统来实现。要向生成的进程传递任何数据,可以使用各种进程间通信(Inter Process Communica-tion,IPC)工具,例如管道和FIFO。
Threads:底层的进程只是线程,具体来说就是主线程。进程可以启动或生成一个甚至多个线程。线程是最小的可调度执行单元。每个进程都是以一个主线程开始的。除此之外,它还可以使用操作系统提供的API生成其他线程。为了允许程序员使用线程,大多数程序语言都在其标准库中附带了线程API。与进程相比,它们是轻量级的。