boost-coroutine相关内容

无堆栈协程与堆栈式协程有何不同?

背景: 我之所以这么问是因为我目前有一个包含许多(数百到数千)个线程的应用程序.大多数线程在大部分时间都处于空闲状态,等待将工作项放入队列中.当工作项可用时,它会通过调用一些任意复杂的现有代码进行处理.在某些操作系统配置上,应用程序会遇到控制最大用户进程数的内核参数,因此我想尝试减少工作线程数的方法. 我提出的解决方案: 这似乎是一种基于协程的方法,我将每个工作线程替换为一个协程 ..
发布时间:2021-12-28 22:52:34 C/C++开发

无叠层协程与叠层协程有何不同?

背景: 我之所以问这个问题,是因为我目前有一个具有许多(数百至数千)线程的应用程序。这些线程中的大多数在大部分时间都处于空闲状态,等待将工作项放入队列中。当一个工作项可用时,然后通过调用一些任意复杂的现有代码来对其进行处理。在某些操作系统配置上,应用程序会遇到控制最大用户进程数的内核参数,因此,我想尝试减少工作线程数的方法。 我建议的解决方案: 这似乎是基于协程的方法,我用协程替 ..
发布时间:2020-09-26 23:27:12 C/C++开发

Boost.Coroutine不使用分段堆栈

谁能给我一个例子,说明如何使用带有增强协程的分段堆栈?我是否必须使用特殊的split-stack属性注释从协程调用的每个函数? 当我尝试编写一个应该使用分段堆栈的程序时,它只会出现段错误. 这是我到目前为止所做的 https://wandbox.org/permlink/TltQwGpy4hRoHgDY 如果分段堆栈,该代码似乎很快会出现段错误如果使用,我希望它能够处理更多的迭代.该程 ..
发布时间:2020-08-15 19:20:28 C/C++开发

如何将error_code设置为asio :: yield_context

我想创建一个异步函数,该函数采用最后一个参数boost :: asio :: yield_context。例如: int async_意义_of_life(asio :: yield_context yield) ; 我还希望与Asio返回错误代码的方式保持一致。也就是说,如果用户这样做: int结果= async_含义_生命_(收益); 函数 ..
发布时间:2020-06-06 19:37:01 C/C++开发

这个boost :: asio和boost :: coroutine使用模式有什么问题?

在此问题中,我描述了 boost :: asio 和 boost :: coroutine 使用模式,这会导致我的应用程序随机崩溃,我从我的代码和 valgrind 和 GDB 输出。 为了进一步调查问题,我创建了较小的概念证明应用程序,它应用相同的模式。我看到同样的问题出现在较小的程序中,我在这里发布的源。 代码启动几个线程,并创建一个连接池与几个虚拟连接提供的数字)。其他参数是无符 ..
发布时间:2016-10-27 01:59:14 C/C++开发

什么原因导致boost :: coroutine中的随机崩溃?

我有一个多线程应用程序,它使用 boost :: asio 和 boost :: coroutine 通过集成在 boost :: asio 。每个线程都有自己的 io_service 对象。线程之间的唯一共享状态是连接池,当连接从连接池获取或从连接池返回时,用 mutex 锁定连接池。当池中没有足够的连接时,我在池的内部结构中推动无限 asio :: steady_tiemer ,并且异步等待它 ..
发布时间:2016-10-20 22:54:07 C/C++开发