因此,最近几乎所有平台提供商都非常重视提供新工具/语言结构以实现更好的并发性.这也是为什么函数式编程语言的许多想法被集成到C#,Java等主流语言中的原因之一.
尽管今天特别是在引入多核CPU的情况下这些很有意义,但我想知道如何在Web应用程序领域中特别使用它们.在Web应用程序中,很多并发性由Web服务器本身管理,我很少看到在Web页面中实现的多线程.AJAX还启用了像"范例"这样的范例来进一步帮助.
Web应用程序通常包括快速获取结果,直到现在我们已经使用了许多策略,如缓存,冗余等来实现这一目标.如果存在计算密集型的东西,则必须脱机(并且客户端可以稍后查询结果或者可以实现回调).
并发类已经在很多库/框架中实现,这些库/框架通常用在像数据库这样的web应用程序中,在memcached等框架中多次获取.
我找不到很多示例场景,其中最近的并发平台和库可以在Web应用程序的上下文中使用.所以我想知道他们在网络领域是否有很多意义.
由于Web应用程序默认是并发的,因此您不太可能在Web应用程序中使用新的并发机制(例如TPL或PLINQ for .NET).在高负载的Web服务器上通常不会获得任何结果(通过减慢另一个请求,可以加快一个请求).但是,如果您的专用Web服务器不能满足其大多数CPU周期(同时具有多个内核),那么这些技术可能会很有用.
[更新:]刚刚阅读有关.NET博客并行编程的新文章.这是两个有趣的引用:
在大多数情况下,特别是对于使用频繁的Web应用程序,可能没有必要引入额外的并行性,因为添加更多工作项只会导致CPU时间的竞争并最终降低请求吞吐量.
和:
如果单个请求的延迟比整体请求吞吐量更重要,那么需要执行昂贵计算的Web应用程序仍然可以从并行性中受益.
我认为这回答了你的问题.