Structured Concurrency for C

本文介绍了开源组件libdill,它是一个用C编写的库,实现了Structured Concurrency。文章阐述了Concurrency与Structured Concurrency的区别,并通过示例说明了Structured Concurrency的生命周期管理特点。同时,提到了libdill在Coroutine管理中的树形结构,以及一些使用libdill的开源项目链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天给大家介绍一个开源组件libdill,用C编写,实现了Structured Concurrency。

什么是 Concurrency?什么又是 Structured Concurrency呢?

Concurrency,翻译为“并发”。最直接的技术解释,就是一个线程处理任务1一会儿,然后处理任务2,过一会儿又切换回来处理任务1,这样在多个任务之间不断切换。从这些任务来看,每个任务都是在不断执行和处理的。这就叫并发。

有一个和并发非常容易混淆的术语,叫并行(Parallelism)。并行是指多个线程,每个线程执行一个子任务,这样整个任务看起来,每个子任务都是同时在向前推进的。

那么,什么叫结构化并发(Structured Concurrency)呢?


并发执行的任务,有个专用的术语,叫Coroutine(协程)。当一个Coroutine创建了一个或多个子Coroutine时,当父Coroutine执行完毕后,需要保证其所有的子Coroutine都结束,有这样的生命周期管理保证,就叫做Structured Concurrency。没有这样的保证,就不叫Structured Concurrency。

下面这个图,就不是Structured Concurrency:


下面这个图,是Structured Concurrency:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值