这个如何理解?(20分)

  • 主题发起人 主题发起人 alevin
  • 开始时间 开始时间
A

alevin

Unregistered / Unconfirmed
GUEST, unregistred user!
1。进程中的每一个线程都是独立的。
2。一个进程可以有多个线程,一个进程的所有线程都共享进程的虚拟地址空间,线程间可以共享进程的全局数据和资料。。
我感觉有点矛盾。。不知道怎么理解。。
 
进程可以理解为一个应用程序.
那么一个进程(也就是"应用程序")里可以有多个线程.
举个最简单的例子,比如WINAMP(MP3播放器,你肯定知道),在他播放歌曲的同时你可以操作,比如打开文件或者删除歌曲,那么这其实就是多线程.多线程我理解是同时执行多个操作.
一个进程("应用程序")的所有线程都共享进程的虚拟地址空间,我的理解就是操作系统为一个应用程序(进程)分配一个地址空间,那么当然这个应用程序的线程肯定共享这一块地址空间,当然不排除线程与线程间不一定能访问这一个可能(但是这只是为了避免程序更复杂,如果你想,理论上可以让线程直接互相访问,只不过同步很难做到).
 
谢谢。。。可我还是有点不懂
既然线程间可以互相访问,那书上为什么说线程间是独立的?
 
所谓独立是相对而言的,并不是绝对的。WIN32的的进程在理论上说也是独立的地址空间,不能相互通信,其实还是有办法进行通信的,比如用HOOK、DLL等就能进行通信。所以说理解东西不能太死,灵活些。
 
后退
顶部