【发布时间】:2014-02-07 03:22:23
【问题描述】:
我想创建一个线程或任务(准确地说不止一个),它会执行一些非 CPU 密集型工作,由于外部原因,例如 HTTP 请求或文件 IO 操作,这些工作将花费大量时间一个慢盘。我可以在 C# 中使用 async await 来做到这一点,这正是我在这里想要做的。产生一个线程或任务并让它做自己的事情,而我继续执行程序并让它在准备好时返回结果。我遇到的 TBB 的问题是,我可以制作的所有任务都认为它们是为 CPU 密集型工作而创建的。
在这种情况下,TBB 调用的 GUI 线程是我想要的吗?我需要不止一个,这可能吗?你能指出我正确的方向吗?我应该寻找另一个提供线程并且可用于多个操作系统的库吗?
【问题讨论】:
-
我可以轻松创建线程和任务,但我无法让他们明白他们不应该独占 CPU,而是尽可能轻松地工作,因为他们的工作大多只是坐在那里等待可能需要数百毫秒的外部响应。我在上面的问题中已经说过了。 Tltr:线程/任务/???用于非 CPU 密集型任务。怎么做,在哪里可以找到信息。
-
如果它应该只是等待,那么它根本不应该使用 CPU,无论您使用什么线程模型。你在等什么?还等什么呢?
标签: c++ multithreading async-await intel tbb