关于线程和进程(100分)

  • 主题发起人 主题发起人 godzhou
  • 开始时间 开始时间
G

godzhou

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样从一个thread handle得到他对应的process handle??<br><br>另外,<br>&nbsp; 谁能告诉我process&amp;thread到底有什么区别,是不是可以这样理解:<br>每个程序对应一个process,但是可以有多个thread.而且这些thread都属于这个process.<br>&nbsp; processID 和process handle 有区别吗?
 
一个进程是一个正在执行的应用程序,<br>它包含有:私有的虚拟地址空间、代码、数据和其它的操作系统资源,<br>譬如进程可以存取的管道、文件和同步对象等等。”<br>一个进程拥有几个对象:地址空间、执行模块和其它该执行程序打开或创建的任何对象<br>或资源。至少,一个进程必须包含可执行模块、私有的地址空间和一个以上的线程。<br><br>一个线程实际上是一个执行单元。<br>当WINDOWS产生一个进程时,它自动为该进程产生一个主线程。<br>该线程通常从模块的第一条指令处开始执行。如果进程需要更多的线程,它可以随后显式地产生。<br>当WINDWOS 接收到产生进程的消息时,它会为进程生成私有内存地址空间,<br>接着把可执行文件映射到该空间。<br><br>进程句柄和进程ID是两个不同的概念。<br>进程ID好似一个唯一值,而进程句柄是调用相关的WINDOWS API 后得到的一个返回值。<br>不能用进程句柄来标识一个进程的唯一性,因为这个值并不唯一。<br>
 
卷兄,关键是下面的问题: <br>&nbsp; &nbsp;怎样从一个thread handle得到他对应的process handle??<br>
 
你的线程是怎么创建的?怀疑。<br><br>GetCurrentProcess
 
GetWindowThreadProcessId(....)它返回的是threadID,好像不是handle,郁闷!
 
多人接受答案了。
 
你可以先通过thread handle 得到thread id,<br>然后通过这个id可以得到一个数据结构,里面包含有<br>process id,这个id+44h,这个地址的值就是你想要的process handle.<br>
 
后退
顶部