根据我的理解,过程是,
“用于描述一组资源(例如外部代码)的操作系统级概念 库和主线程)以及正在运行的应用程序使用的必要内存分配。 对于加载到内存中的每个* .exe,操作系统会创建一个单独的隔离进程,以便在其中使用 一生。“ - 安德鲁·特罗森(专业#2010)
因此,每次启动应用程序时,都会创建一个具有自己的地址空间的进程,该进程无法由其他进程共享。
最近我通过c#读了clr,
实际上,CLR确实提供了在单个应用程序中执行多个托管应用程序的能力 OS流程。每个托管应用程序都在AppDomain中执行。“这表示多个应用程序可以在单个操作系统进程中运行,操作系统进程与运行应用程序时启动的进程之间是否存在差异?
有人可以解释这一点。
答案 0 :(得分:0)
不同之处在于主要运行进程由操作系统管理。 CLR / Framework提供了一个完全不同的堆栈,称为“应用程序域”,它允许程序的单独运行实例在同一系统级进程下执行,但作为完全独立的进程。我不是C#/ .NET设计模型的专家,除了大型系统的可扩展性之外,我无法提供一个可能有用的示例。