【发布时间】:2012-05-06 02:47:33
【问题描述】:
我有一个程序,其中包含一些使用 boost::thread 创建的线程,因为它是一个管理器,可以为我的游戏项目启动和控制多个游戏服务器。
管理器由一个应用程序组成,我的问题如下:
如何以这种方式封装线程,如果它在例如 NULL 指针异常或类似情况下崩溃,则线程本身结束但不是整个程序随后崩溃。
【问题讨论】:
-
为什么一开始就允许未处理的异常?
-
当然我不想允许它,但是在一个大型项目中,作为具有多个数据库连接、实例和外部文件的游戏服务器,可能会发生错误。如果我在更新中犯了一个错误,并且在测试期间或类似情况下错过了它,我希望至少不是所有服务器都立即崩溃。
-
您的问题确实是:“我如何编写代码来理智地处理我没有编写代码来理智地处理的情况?”当您意识到这是问题所在时,答案应该是显而易见的。
标签: c++ multithreading boost crash