1。线程和进程的区别是什么?线程有它的堆栈吗?怎样理解死锁。
2。怎么理解windows消息机制。怎样理解“向对象发送一个消息”着句话。

解决方案 »

  1.   

    1 .
    (1) 进程是操作系统为了分时多任务处理而引入的 ,它指一个程序在一个资源上的一次执行,在存储上表现为从创建到释放这块资源;它的引入极大的利用了Cpu的时间片,提高了系统的效率;线程是为了在一个进程合理的配置和使用资源而引入的。进程的任务由它的各个线程完成,任何一个进程都至少有一个线程----主线程,进程的多个线程一起完成了整个进程的任务同时对资源的配置和使用进行了优化,虽然一个线程占用的资源很少(只有它的Create资源),但多个线程一起共用了进程的全部资源。简单我觉得可以这样说: 线程是进程的执行单元 .
    (2) 我认为,线程从创建到释放,有自己的堆栈 .
    (3) 死锁 :  操作系统书上这样解释:一组进程中的其它进程无限等待该组进程中的某个进程释放其使用的资源, 形成死锁。 我认为这样的概念同样可以用在一个进程的多线程中,因为线程中代码也可能形成对资源的独占,但没有外部强制终止这个线程时,就形成了永久的独占,形成死锁 .其实所有的死锁的原因只有一个:资源竞争 .
    2.消息可以参考以下几个方面:
      消息可以理解为系统的一个事件,如鼠标动作、键盘动作,对象事件,都需要Windows消息系统的接收消息、放入消息队列、消息循环、处理消息。
      消息队列、消息循环、消息处理 。其中消息循环是Windows消息机制的关键 .
      向对象发送消息 :其实是向消息处理的对象(如窗体)发送一个消息 ,这是消息循环中的一个环节 .以上是我的想法,望大家指导指正 。
      

  2.   

    1、在windows中每个进程都包括一条主线程,进程由一个或多个线程组成,线程有它自己的堆栈。
      

  3.   

    在多线程的应用程序中,进程中的多个线程共同存在于进程的虚拟地址空间中,它们共享进程的所有资源,因此如果发生多个线程同时访问或操作进程的某一个资源时,将会使程序产生错误。这样就需要一个机制来使各个线程之间实现同步,避免上面的并发访问错误。在Delphi里是通过调用Synchronize过程来实现的。
       对于互斥就是实现避免多个线程并发访问同一资源的一种机制。
      

  4.   

    第2个问题,请去下载“Win98程序设计从入门到精通”,看完前三章后,自己就能明白了