.NET 平台上的green thread 异步模型实验结果最近出来了,具体参见:https://github.com/dotnet/runtimelab/issues/2398 ,实验结果总结一下就是在.NET和 ASP.NET Core中实现Green Thread是可行的。Green Thread 在.NET运行时环境中的基本成本和好处,以及与异步编程模型的交互和挑战。如果引入了全新的异步编程模型,对于.NET开发人员来说,Green Thread 和现有异步模型async/await 之间的交互非常复杂。因此,决定暂停绿色线程试验,继续改进现有的async/await模型,以便在.NET中开发异步代码。
文章对为什么要进行Green thread的实验的总结一下就这么几点:
文章里也对搁置Green thread的结论总结几点:
文章后面的讨论值得看一看,其中rcollette 的观点特别有意思:https://github.com/dotnet/runtimelab/issues/2398#issuecomment-1713003525
这篇关于loom/Java 21的演讲对于那些希望深入了解绿色线程的人来说非常不错。 https://blog.jetbrains.com/idea/2023/05/new-livestream-virtual-threads-and-structured-concurrency-in-java-2021-with-loom/ 我预计在现实世界中,它们(对现有代码)有益的情境会非常有限。你需要大量的阻塞IO,对吗?到线程池饥饿成为一个问题的程度。 在Java世界中,这很快就会发生,原因有以下几点: