Re: [cpp] 线程crash而进程没有crash

hyqer at msn.com hyqer at msn.com
Wed Nov 28 14:12:11 CST 2007


我觉得可能和代码相关,在一定的条件下,线程函数返回或者退出了。另一种可能和系统对线程的实现有关,有些系统中会用进程来模拟线程,这种情况下会有可能线程自己crash掉而主进程还在。


From: sunpluto 
Sent: Wednesday, November 28, 2007 1:09 PM
To: C++ Discuss Group 
Subject: Re: [cpp] 线程crash而进程没有crash


理论上,进程只是一个概念,或者说是一个上下文

当进程开始时,是进程的主线程开始运行,当主线程崩溃时,进程便被系统

回收了,而主线程外的其他线程若崩溃的话,因该是不会影响进程(主线程)的

不过我没有进行过测试,只是泛泛之说,欢迎一起讨论

Alized <bluecjq at gmail.com> 写道:
  我程序中有个地方使用了一个0指针,没有用结构化的try-catch来捕获异常,然后在客户运行环境中发现这个线程挂了(不见了),其他线程正常运行,使用同一个build来我们自己的测试环境中也是这样。但当我重新编译后,再测试时就发现是整个进程crash了,而不是单个线程crash.跟踪源程序,发现在类的成员变量中会调用类的成员变量,因此,如果是个空指针的话,在这个成员函数中使用非静态成员变量,又没有try-catch,理论上应该是整个进程crash。 问题在于:为什么前一次是只挂一个线程,而后一次是整个进程。两者的不同在于,一个是build machine编译的,而后一次是我自己机子编译的,不知道是不是编译器可以设置? 


   
  在07-11-26,Louis <hlouis at gmail.com> 写道: 
    好吧,这样说也有道理,如果你不做任何事情就访问一个空指针或是除以0之类的,我相信没有什么办法让你的程序不崩溃。 



    On Nov 26, 2007 1:09 PM, lijie <cpunion at gmail.com> wrote:

      异常都捕获了还算是crash吗? 



      On Nov 26, 2007 11:48 AM, Louis <hlouis at gmail.com> wrote:

        一般来说,你需要用try catch捕获这个线程的exception,然后不予处理,基本上可以保证这个线程的crash不会影响整个进程。

        不过在程序退出之前,这个线程所占用的资源也不能释放了。。。。 


        On Nov 26, 2007 11:40 AM, Alized < bluecjq at gmail.com > wrote:

          请教:在什么样的情况下,线程crash而进程不会crash?跟系统的设置有关么? 
          _______________________________________________
          Cpp mailing list
          Cpp at codingnow.com
          http://codingnow.com/mailman/listinfo/cpp 





        -- 
        Louis Huang 
        _______________________________________________
        Cpp mailing list
        Cpp at codingnow.com
        http://codingnow.com/mailman/listinfo/cpp 



       

      _______________________________________________
      Cpp mailing list
      Cpp at codingnow.com
      http://codingnow.com/mailman/listinfo/cpp 





    -- 
    Louis Huang 

    _______________________________________________
    Cpp mailing list
    Cpp at codingnow.com
    http://codingnow.com/mailman/listinfo/cpp



  _______________________________________________
  Cpp mailing list
  Cpp at codingnow.com
  http://codingnow.com/mailman/listinfo/cpp




致
礼 


--------------------------------------------------------------------------------
雅虎邮箱,终生伙伴! 


--------------------------------------------------------------------------------


_______________________________________________
Cpp mailing list
Cpp at codingnow.com
http://codingnow.com/mailman/listinfo/cpp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://codingnow.com/pipermail/cpp/attachments/20071128/5bf4a612/attachment.html


More information about the Cpp mailing list