为什么别人一定要看join calculus才能说话啊?
那要不你先看元宇宙,看完了再一起讨论。。。
【 在 leadu (leadu) 的大作中提到: 】
: 只有一行代码,哪来的300行代码?
: 协程有两代,
: 第一代是操作系统那帮人搞的,微软这边从win2000的fiber,到windows xp的QueueUserWorkItem
: fiber只有ms sql server7中据说用过,基本没啥人用。QueueUserWorkItem用户也不多,现在都被微软扔到Threadpoollegacyapiset.h里面了
: Linux这边就是golang,和QueueUserWorkItem一样的思路,加了点语法糖。Linux这边倒是有不少用go的,还有c的库用jmp模拟的
: 第一代协程其实意义不大,提供的性能提升非常有限,又得必须按照它的使用逻辑或pattern使用。
: 你上面提出的三个task随意一个返回的问题,用这一代协程确实有你说的各种问题包括同步等
: 第二代协程是async/await,来自于做并行计算那帮人。
: 正式名称叫join calculus,概念本身来自于caml社区。
: 作者C?edric Fournet和Georges Gonthier后来去的微软,参与的dotnet的开发。
: 微软把join calculus丰富之后,创立了两个关键词async/await,加入了C#和F#。
: 之后因为js的copy名声大振,各个语言分别往自己里面加。
: c#的生态已经全部迁移到async/await了,连显示对话框都是await DisplayAlert
: 第二代协程是并行计算那帮人搞得,他们还能给你留什么你以为的同步问题?
: 上面提出的三个task随意一个返回的问题,c#就一行代码,无锁解决。
: 自己去看join calculus吧
: ※ 修改:·leadu 于 Dec 1 17:17:22 2021 修改本文·[FROM: 123.116.198.*]
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 123.116.198.*]
--
修改:leadu FROM 123.116.198.*
FROM 101.84.172.*