首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在深入研究C++中的多线程编程时,有哪些“需要知道的事情”

在深入研究C++中的多线程编程时,有哪些“需要知道的事情”
EN

Stack Overflow用户
提问于 2010-01-22 23:02:49
回答 11查看 5.9K关注 0票数 55

我目前正在用C++开发一个无线网络应用程序,我希望在一个进程下对软件进行多线程处理,而不是将它们都放在单独的进程中。从理论上讲,我理解多线程,但我还没有深入到实践中。

在用C++编写多线程代码时,每个程序员都应该知道什么?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2010-01-22 23:14:52

我会把重点放在尽可能多的分区设计上,这样你就可以在线程之间共享最少的东西。如果您确保没有在线程之间共享静态和其他资源(如果您使用进程而不是线程来设计这些资源,那么您将共享的资源除外),那么就没有问题了。

因此,虽然你必须在脑海中有锁、信号量等概念,但解决这个问题的最好方法是尽量避免它们。

票数 25
EN

Stack Overflow用户

发布于 2010-01-22 23:08:50

您应该阅读有关锁、互斥、信号量和条件变量的内容。

一句话建议,如果你的应用程序有任何形式的UI,请确保你总是在UI线程中更改它。如果你从后台线程访问,大多数UI工具包/框架都会崩溃(或者行为出乎意料)。通常,它们提供某种形式的调度方法来执行UI线程中的某些函数。

票数 10
EN

Stack Overflow用户

发布于 2010-01-22 23:19:48

我发现有一件事非常有用,那就是使应用程序可以根据它用于各种任务的实际线程数进行配置。例如,如果有多个线程访问一个数据库,则可以通过命令行参数配置这些线程的数量。这在调试时非常方便-您可以通过将数字设置为1来排除线程问题,或者通过将其设置为较高的数字来强制它们。在计算出最佳线程数时,它也非常方便。

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

https://stackoverflow.com/questions/2118090

复制
相关文章

相似问题

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