hacklang中的并发块



既然hack是单线程语言,那么使用并发块的好处是什么呢?

concurrent {
await func_a;
await func_b;
}

我的理解是一项工作在等待另一项工作结束。

并发并不意味着多线程

并发块将等待该块中的所有异步操作(可等待对象),类似于javascriptPromise.all(也是单线程)。

没有并发:

await func_a; // 1 sec
await func_b; // 2 sec
await func_c; // 3 sec
// will get here after at least 6 seconds (sum of requests time)

与并发:

concurrent {
await func_a; // 1 sec
await func_b; // 2 sec
await func_c; // 3 sec
}
// will get here after at least 3 seconds (longest request time)

如果您想并行地进行多个IO请求。
不适合如果您想运行多个CPU作业。

相关内容

  • 没有找到相关文章

最新更新