提问人:Sourav Kannantha B 提问时间:8/4/2022 更新时间:8/4/2022 访问量:370
如何从一开始就启动具有多个线程的进程?
How to start a process with multiple threads right from the beginning?
问:
据我所知,进程是它托管的所有线程的公共容器。如果多个线程在同一进程中运行,则它们可以轻松共享资源。进程中的所有线程共享一个公共地址空间。另一方面,线程是程序的执行单元。
操作系统中的调度程序调度线程,而不是进程 (1)。如果进程的任何一个线程正在运行,则称该进程正在活动运行。否则,该过程正在等待。调度程序不能简单地调度进程。
此外,除了优先级之外,从操作系统的角度来看,进程中的所有线程都是平等的,即使是主线程 (2)(某些应用程序可能为每个线程分配了特定于应用程序的角色,我在这里忽略了这一点)。
基于(1)和(2),似乎没有要求所有进程都应该从一个线程开始,然后应该根据需要生成子线程。因此,从技术上讲,可以从一开始就启动具有多个线程的进程,其中没有一个线程启动另一个线程。当该过程启动时,调度程序可以简单地调度许多起始线程中的任何一个。但我不明白该怎么做!
那么,如何从一开始就启动一个具有多个线程的进程呢?这个问题不涉及任何特定的操作系统。此外,如果强制作为入口点的编程语言在举例时是一个问题,我可以(或尝试)理解 x86-64 汇编代码。main
答: 暂无答案
评论
exit()
exit()
pthread_exit()
main
exit()