我是C ++程序员(中级),现在正在学习多线程。我发现在C ++中使用多线程时很困惑?我怎么才能知道我需要在哪部分中使用多线程?
When to use multithreading in C++?
答案 0 :(得分:2)
当您有资源密集型任务(如巨大的数学计算)或I / O密集型任务(如读取或写入文件)时,请使用多线程。
目的应该是,您可以一起运行多个事物(任务),这样可以提高应用程序的性能和响应能力。此外,在应用程序中实现多线程之前,请了解同步。
答案 1 :(得分:1)
多线程是一种多任务处理的特殊形式,多任务处理功能允许您的计算机同时运行两个或多个程序。
我认为此链接可以帮助您。
http://www.tutorialspoint.com/cplusplus/cpp_multithreading.htm
答案 2 :(得分:1)
主要是当你想要同时完成任务时。例如,您可能希望窗口在游戏中加载关卡时或者当您一次下载多个文件时仍然响应用户输入,等等。这些事情实际上不能等到其他处理完成。当然,两者都可能因此而变慢,但它确实给出了同时发生多种事情的错觉。
答案 3 :(得分:1)
这是一个有点主观的主题......但我倾向于在两种情况之一中使用多线程。
1 - 在需要最大功率的性能危急情况下(当然算法支持并行性),对我来说,矩阵乘法。
2 - 很少有一个线程可以更容易地管理一些相当独立的东西。经典是网络,可能有一个线程阻塞等待连接并产生线程来管理每个线程。这很有用,因为线程可以及时阻塞和响应。假设你有一台服务器,一个请求可能需要磁盘访问速度很慢,另一个线程可以在一个字段中跳转另一个请求,而第一个请求正在等待其数据。
正如其他人所说,只有在您需要的时候才应该考虑这样做,它会变得很复杂并且难以调试。
答案 4 :(得分:1)
当您可以通过并行处理来加速算法时使用多线程。当线程需要访问父进程的资源时,使用它来反对多处理。
答案 5 :(得分:1)
何时在C ++中使用多线程?`
嗯 - 一般的经验法则是:在它可以加速你的应用程序时使用它。答案并非真正取决于语言。
如果您想获得深入的答案,那么您必须考虑以下几点:
答案 6 :(得分:0)
我的两分钱。
用例:
建议: