【发布时间】:2014-10-07 13:35:42
【问题描述】:
我在一次采访中被问到这个问题,现在我很好奇,因为我认为面试官对我的回答并不满意。问题来了:
多线程服务器应用程序停止工作,应用程序的最后一条日志消息是:
"Some Server Related Message..."
代码如下:
CalledFunc ()
{
Code ...
Acquiring Thread lock
Line printing "Some Server Related Message..."
Func();
Releasing Thread Lock
}
- 负责调试的程序员应该怎么做?
-
Func()出了什么问题? - 如果
Func()中抛出异常,应该如何解决问题?
【问题讨论】:
-
是什么样的应用程序?
-
你忘了问问题。你给我们讲了一个很棒的故事,大概你有一些问题,但你忘了问那个问题。像大多数面试问题一样,没有“一个正确的答案”。面试官想听听你如何推理线程应用程序以及你如何调试它们。此外,调试伪代码非常困难。我们在谈论什么样的锁(递归?错误检查?)以及我们如何获取它(锁功能?RAII?)很重要。另外,为什么这被标记为C?这不是 C++ 代码还是我们在谈论一些 C 异常方案?如果有,是什么?
-
@java_geek:正如我们所说,我是多线程和学习的新手。面试官没有具体说明这是什么类型的应用程序,只是为了找出代码和样式的问题。
-
@joeroot:这个问题是主观的;因此,提出正确的问题会给面试官留下良好的印象。通常对于此类问题,您需要大声思考,以便面试官了解您的思考过程。只是一个建议:)
标签: c++ multithreading thread-safety pthreads