gpt4 book ai didi

c++ - C++1y标准是否考虑过支持coroutine/goroutine?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:31 25 4
gpt4 key购买 nike

我认为协程/goroutine 在必须快速执行大量并发小任务的情况下非常有用。当前的std::thread成本太高,无法满足要求。

我也认为协程/goroutine不能简单地通过C++库来支持,它应该直接由语言的核心特性来实现。因为coroutine/goroutine有特殊的语义,在当前的C++标准中没有相应的概念。

假设我们新增一个关键字cppgo,那么我们可能会写出如下代码:

void f(int n)
{
...
}

int main()
{
for (int i = 0; i < 10000; ++i)
{
cppgo f(i);
}
}

那该有多酷!

C++1y标准是否考虑支持coroutine/goroutine?

最佳答案

有几个与协程相关的提案,但它们不针对 C++14,而是针对更高版本。以下是其中的一些建议:

还有其他或多或少相关的论文(查看并发相关论文和 future 相关论文,您会看到允许协程的趋势)。

有些人还讨论了为“展开 monads”(如 1 中提出的 await 关键字)提供通用语法的可能性,这对 std::future< 都有效 和其他非并发相关的类型,如 optionalexpected。这些功能将允许将相同的算法无缝地应用于可恢复和不可恢复的函数,无论是否涉及并发。至少在理论上。

以下是与这些协程和 monad 概念相关的讨论列表,由人们提出和批评这些建议:

关于c++ - C++1y标准是否考虑过支持coroutine/goroutine?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22317288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com