首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >理解和分析多线程代码的最好方法是什么?

理解和分析多线程代码的最好方法是什么?
EN

Stack Overflow用户
提问于 2018-06-09 04:41:42
回答 1查看 52关注 0票数 0

我不是在寻找编程技术。我的问题是,理解由第三方开发的代码的最佳方式是什么。

我有一个特定语言的应用程序代码(可以是C/C++、Java等)。这段代码使用多个线程来控制不同的进程。应用程序生成一个日志,其中显示每个线程对相关函数的所有调用。

我必须分析这段代码以了解它的操作,并能够对算法进行改进。我很少使用线程,所以我不知道哪种方法是开始分析和跟踪每个线程执行的最方便的方法。

你能给我推荐一下吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 08:13:20

如果您能够联系到任何代码的原始开发人员,与他们进行对话(通过语音或电子邮件),并要求他们描述他们打算如何工作,总是比仅仅试图通过查看代码来逆向设计他们的意图更可取。如果您不能直接联系开发人员,那么也许有一个特定于库的开发人员论坛或其他在线资源,您可以在那里与有使用/调试经验的人讨论库的结构。

如果这不是一种选择(或者如果您已经这样做了,但仍然觉得自己对事情理解得不够好),那么我经常发现分析(通过分析工具,或者只是通过在不同位置将printf()或类似的跟踪调用临时放入代码库并查看何时打印什么)是找出在程序执行的哪些阶段实际使用了代码的哪些部分的好方法。这将帮助您确认(或反驳)您关于代码库如何工作的理论。知道每个线程产生的位置和时间,它的entry-function在哪里,以及它在哪里/什么时候被它的父线程再次联接,这是特别有用的。

最后,开始查看每个线程检查和/或修改的各种数据片段(例如对象和成员变量),以及如何同步/序列化对这些数据片段的访问。假设代码没有buggy,代码库的关键部分可以很好地指示线程间通信发生的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50768130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档