c++ - 模块、进程和线程?

标签 c++ visual-studio windows-ce

我对嵌入式固件设计中使用的术语很好奇。我目前正在开发一个使用 WinCE 7 的项目。通过研究现有代码,我浏览了多个有关模块、进程和线程的高级和低级文档。我决定做一些研究,以便能够将定义与现有的代码架构联系起来。

我确实理解(或认为我理解)的是线程是进程的子进程,即进程由线程或轻量级进程组成。进程的功能是单击 Microsoft Word 图标,然后根据需要执行相应的线程来执行该进程。线程是一个小的、集中的进程,它负责主进程的特定部分。如果我对线程和进程的理解有误,请纠正我。

我迷失的是进程和模块之间的差异。如果进程是执行任务所需的线程的执行,例如单击 MS Word 图标,那么什么是模块?

他们描述固件的方式是这样的:“系统架构将由 7 个模块组成。每个模块负责特定的功能,例如数据存储、数据处理、用户界面等。 ……”。由此,我收集到,我的 Visual Studio 项目的子项目文件夹下列出的这些“模块”是高级系统设计,每个模块都包含构成流程的子文件(.cpp/.h),并且这些流程内部是线程(函数/类等)。我的理解正确吗?

提前致谢,对于这么长的问题深表歉意。

最佳答案

Windows CE(以及一般的 Windows)上的进程是应用程序的私有(private)地址空间。 线程是一个执行流。一个进程内可能有多个线程,主线程决定进程的生命周期。如果退出(WinMain 函数),该进程将关闭,分配给它的所有资源都将被释放。 模块是包含当前加载到内存中的代码的二进制文件。它可能是一个exe文件(用于启动进程)或动态链接库(dll)。

关于c++ - 模块、进程和线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27000718/

相关文章:

c++ - fatal error LNK1104 : cannot open file 'libboost_log-vc141-mt-gd-1_64.lib'

c++ - 无法解析依赖项 'openssl.v120.windesktop.msvcSTL.dyn.rt-dyn.x64 (= 1.0.2.1)'

javascript - 构建 :Cannot find module OurFirstAppWithFVisualStudio. 模块.scss

c# - 如何从 c/cpp 创建 C# 自定义控件

c# - 如何使用 C# 在 windows-ce 中获取我的程序名称?

C++ vector 指针/引用问题

c++ - 获取打开的 QIODevice 的校验和

c++ - 使用 while 循环计算数学常数 e

c++ - 追踪水平面

c# - 为什么处理 SqlCeConnection 既解决了一个异常又引发了另一个异常?