对多线程的个人理解----敬请前辈们请指教.(100分)

  • 主题发起人 主题发起人 xxljishiben
  • 开始时间 开始时间
X

xxljishiben

Unregistered / Unconfirmed
GUEST, unregistred user!
本人刚刚由硬件设计转学软件,前几天看了一下多线程的概念,形成了这样的模型,如果理解正确,给像我一样的新手做指引,如果有不对的地方,敬请各位指出.
学习中,求知不求分.
在对概念的研究中,得到以下几个结论:
1.大家都知道的, 对单个cpu 来说 ,同一时刻,只能执行一个指令.
2.所谓的多任务, 是在操作系统控制下, 不同应用程序的指令交叉执行.
3.进程是应用程序的实例,每个进程由 a,私有的虚拟地址空间;
b,代码 ;
c 数据;
d, 其他各种系统资源 组成 (这句是抄的课本)
4.每个进程至少有一个线程,一个进程中的所有线程都在该进程的虚拟地址空间中,使用这些虚拟地址空间的全局变量和系统资源。
~~~~~~~~~~~~~~~~~~~~~~~~~~
从上边的理论而得出以下理解:(希望大家给予指正)
1.操作系统给每个应用程序指定不同的虚拟空间。虚拟空间用以存储数据和可执行代码
2.单一线程的应用程序,只提供给系统一个入口地址,这个入口地址指向应用程序的可执行代码段, 在相应的时间片系统将这个入口地址交付给cpu执行
3.多线程的应用程序, 提供给系统多个入口地址,每个入口地址指向一个线程的可执行代码段,相当于多个单线程应用程序同时运行(不同的是多个应用程序在使用系统指定的不同的虚拟空间和不同的资源,而多线程应用程序各个可执行代码段使用的是相同的空间和资源)
 
为什么没人理我, 我理解的不对吗? 敬请高人指正啊 !
我是做硬件的, 刚刚学delphi
 
我也在学习多线程,做东西就明白什么意思了,实践出真知
 
每创建一个线程系统会分配一些资源给这个线程 包括代码段和数据段等
不是同一进程中每个相同功能的线程都使用同一块内存的
楼主可以简单试验一下1个线程和10个线程的内存占用
 
理论和实践结合。多写就知道怎么用
 
多人接受答案了。
 
后退
顶部