草庐IT

async_wait

全部标签

c++ - 使用线程池的 std::async 的 Visual C++ 实现是否合法

VisualC++在调用CreateThreadpoolWork时使用Windows线程池(Vista的QueueUserWorkItem如果可用,std::async如果没有)与std::launch::async.池中的线程数是有限的。如果创建多个长时间运行而不休眠的任务(包括执行I/O),队列中即将到来的任务将没有机会工作。标准(我使用的是N4140)说使用std::async与std::launch::async...callsINVOKE(DECAY_COPY(std::forward(f)),DECAY_COPY(std::forward(args))...)(20.9.2

c++ - 使用线程池的 std::async 的 Visual C++ 实现是否合法

VisualC++在调用CreateThreadpoolWork时使用Windows线程池(Vista的QueueUserWorkItem如果可用,std::async如果没有)与std::launch::async.池中的线程数是有限的。如果创建多个长时间运行而不休眠的任务(包括执行I/O),队列中即将到来的任务将没有机会工作。标准(我使用的是N4140)说使用std::async与std::launch::async...callsINVOKE(DECAY_COPY(std::forward(f)),DECAY_COPY(std::forward(args))...)(20.9.2

c++ - asio::tcp::socket 的 async_read_some 和 async_receive 有什么区别?

有什么区别:boost::asio::tcp::socket::async_read_some()boost::asio::tcp::socket::async_receive()据我所知,他们的文档是相同的。我应该更喜欢哪个? 最佳答案 我相信这两者本质上是相同的。它们提供两者的原因是提供类似于iostream(具有read_some成员)和套接字(具有receive)的接口(interface)。正如PeterTseng指出的,async_receive也有接受socket_base::message_flags的重载,其中as

c++ - asio::tcp::socket 的 async_read_some 和 async_receive 有什么区别?

有什么区别:boost::asio::tcp::socket::async_read_some()boost::asio::tcp::socket::async_receive()据我所知,他们的文档是相同的。我应该更喜欢哪个? 最佳答案 我相信这两者本质上是相同的。它们提供两者的原因是提供类似于iostream(具有read_some成员)和套接字(具有receive)的接口(interface)。正如PeterTseng指出的,async_receive也有接受socket_base::message_flags的重载,其中as

c++ - 何时在 async 或 packaged_task 上使用 promise?

我什么时候应该使用std::promise而不是std::async或std::packaged_task?你能给我具体的例子来说明什么时候使用它们吗? 最佳答案 std::asyncstd::async是获得std::future的简洁而简单的方法,但是:它并不总是启动一个新线程;枚举值std::launch::async可以作为第一个参数传递给std::async为了确保创建一个新线程来执行func指定的任务,从而确保func异步执行。autof=std::async(std::launch::async,func);destr

c++ - 何时在 async 或 packaged_task 上使用 promise?

我什么时候应该使用std::promise而不是std::async或std::packaged_task?你能给我具体的例子来说明什么时候使用它们吗? 最佳答案 std::asyncstd::async是获得std::future的简洁而简单的方法,但是:它并不总是启动一个新线程;枚举值std::launch::async可以作为第一个参数传递给std::async为了确保创建一个新线程来执行func指定的任务,从而确保func异步执行。autof=std::async(std::launch::async,func);destr

c++ - 哪些 std::async 实现使用线程池?

使用std::async而不是手动创建std::thread对象的优点之一应该是std::async可以在后台使用线程池来避免超额订阅问题。但是哪些实现可以做到这一点?我的理解是微软的实现可以,但是这些其他的async实现呢?Gnu的libstdc++LLVM的libc++JustSoftware的库Boost(对于boost::thread::async,而不是std::async)感谢您提供的任何信息。 最佳答案 黑盒测试虽然“白盒”检查可以通过检查boost、libstdc++或libc++源或检查文档如just::threa

c++ - 哪些 std::async 实现使用线程池?

使用std::async而不是手动创建std::thread对象的优点之一应该是std::async可以在后台使用线程池来避免超额订阅问题。但是哪些实现可以做到这一点?我的理解是微软的实现可以,但是这些其他的async实现呢?Gnu的libstdc++LLVM的libc++JustSoftware的库Boost(对于boost::thread::async,而不是std::async)感谢您提供的任何信息。 最佳答案 黑盒测试虽然“白盒”检查可以通过检查boost、libstdc++或libc++源或检查文档如just::threa

go - 使用sync.WaitGroup.wait时如何实现超时?

这个问题在这里已经有了答案:TimeoutforWaitGroup.Wait()(10个回答)关闭4个月前。我遇到了一种情况,我想跟踪一些goroutine以在特定点同步,例如当所有url都被获取时。然后,我们可以将它们全部放置并按特定顺序显示。我认为这是barrier进来的。它在go和sync.WaitGroup中。但是,在实际情况下,我们不能确保所有的fetch操作都会在短时间内成功。所以,我想在wait获取操作时引入超时。我是Golang的新手,谁能给我一些建议?我要找的是这样的:wg:=&sync.WaigGroup{}select{case我知道Wait不支持Channel。

go - 使用sync.WaitGroup.wait时如何实现超时?

这个问题在这里已经有了答案:TimeoutforWaitGroup.Wait()(10个回答)关闭4个月前。我遇到了一种情况,我想跟踪一些goroutine以在特定点同步,例如当所有url都被获取时。然后,我们可以将它们全部放置并按特定顺序显示。我认为这是barrier进来的。它在go和sync.WaitGroup中。但是,在实际情况下,我们不能确保所有的fetch操作都会在短时间内成功。所以,我想在wait获取操作时引入超时。我是Golang的新手,谁能给我一些建议?我要找的是这样的:wg:=&sync.WaigGroup{}select{case我知道Wait不支持Channel。