4.2. 线程
实时,一个进程中可以存在多个线程。进程的所有线程共享其虚拟地址空间和系统资源。线程是一个可调度的实体,其中包含:
- 程序计数器(PC)。
- 注册上下文。
- 堆栈指针。
在实时中,以下是创建并行性的潜在机制:
-
使用
fork()
和exec()
函数调用来创建新进程。fork ()
调用会为进程创建一个名为 且具有唯一标识符的进程的精确重复。 -
使用 Posix 线程(
pthreads
)API 在已经运行的进程中创建新线程。
在对实时线程进行分叉前,您必须评估组件交互级别。当组件独立于另一个或交互时,创建新地址空间并将其作为新进程运行是有益的。当组件需要共享数据或经常通信时,在一个地址空间中运行线程会更高效。
实时中,fork ()
系统调用在成功时返回零值。在错误时,它会返回错误编号。