【问题标题】:sub-threads of a thread?线程的子线程?
【发布时间】:2012-12-02 07:58:11
【问题描述】:

假设您有一个多线程程序,每个线程都可以从 DLL 调用一个函数,并且该 DLL 中的函数将以多线程方式处理数据,一般来说,这样做是否有任何性能优势/打击这不是让 DLL 中的这些函数成为单线程的吗?

【问题讨论】:

  • 可以是有益的,它可以伤害。
  • 这完全取决于您的编程设计。如果任务很琐碎,单线程是好的,因为你可以省去同步的麻烦,如果手头的任务时间密集并且结果对主线程来说并不重要,线程是好的。

标签: c++ c multithreading performance


【解决方案1】:

也许,也许不是。这取决于很多事情。

首先,产生新线程的成本相当高,因此并行完成的工作量需要抵消这一成本。

其次,这些线程需要有空闲的 CPU 周期才能真正并行运行,而不是在同一内核上进行时间分片。

最后,线程需要能够使用这些空闲的 CPU 周期,而不是将大部分时间花费在彼此等待上。

【讨论】:

  • 忘了提到它们可以用于简化设计,例如GUI 应用程序。
  • @EdHeal:这是一个很好的观点。但是,我认为这个问题是关于数据处理的(OP 说“处理数据”、“性能优势”等)。
  • 也可以用于数据处理。仅仅因为你有多个线程可能意味着有些线程处于休眠状态。
猜你喜欢
  • 2012-08-02
  • 1970-01-01
  • 2021-12-17
  • 2012-11-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
相关资源
最近更新 更多