Quasar轻量级java线程库
2017-02-14 18:56
267 查看
Quasar 是一个 Java 库,提供了高性能、轻量级的线程,类似 Go 语言的 Channel,Erlang 语言的 Actor 和其他异步编程工具。
Quasar最主要的贡献就是提供了轻量级线程的实现,叫做fiber(纤程)。Fiber的功能和使用类似Thread, API接口也类似,所以使用起来没有违和感,但是它们不是被操作系统管理的,它们是由一个或者多个ForkJoinPool调度。一个idle
fiber只占用400K内存,切换的时候占用更少的CPU,你的应用中可以有上百万的fiber,显然Thread做不到这一点。这一点和Go的goroutine类似
Fiber并不意味着它可以在所有的场景中都可以替换Thread。当fiber的代码经常会被等待其它fiber阻塞的时候,就应该使用fiber。
对于那些需要CPU长时间计算的代码,很少遇到阻塞的时候,就应该首选thread
Fiber特别适合替换哪些异步回调的代码。使用 FiberAsync 异步回调很简单,而且性能很好,扩展性也更高。
Fibers还可以被视为一个从线程池的进化,当我们通过应用并行流的时候避开了线程过载的危险。他们更容易衡量线程和允许令人可观的并行”轻量“线程数量。它们不是为了取代线程,而是应该用在那些相对来说经常堵塞的代码中,就如同担任真正异步线程的角色
Comsat介绍
Comsat又是什么?
Comsat还是Parallel Universe提供的集成Quasar的一套开源库,可以提供web或者企业级的技术,如HTTP服务和数据库访问。
Comsat并不是一套web框架。它并不提供新的API,只是为现有的技术如Servlet、JAX-RS、JDBC等提供Quasar fiber的集成。
它包含非常多的库,比如Spring、ApacheHttpClient、OkHttp、Undertow、Netty、Kafka等。
Quasar最主要的贡献就是提供了轻量级线程的实现,叫做fiber(纤程)。Fiber的功能和使用类似Thread, API接口也类似,所以使用起来没有违和感,但是它们不是被操作系统管理的,它们是由一个或者多个ForkJoinPool调度。一个idle
fiber只占用400K内存,切换的时候占用更少的CPU,你的应用中可以有上百万的fiber,显然Thread做不到这一点。这一点和Go的goroutine类似
Fiber并不意味着它可以在所有的场景中都可以替换Thread。当fiber的代码经常会被等待其它fiber阻塞的时候,就应该使用fiber。
对于那些需要CPU长时间计算的代码,很少遇到阻塞的时候,就应该首选thread
Fiber特别适合替换哪些异步回调的代码。使用 FiberAsync 异步回调很简单,而且性能很好,扩展性也更高。
Fibers还可以被视为一个从线程池的进化,当我们通过应用并行流的时候避开了线程过载的危险。他们更容易衡量线程和允许令人可观的并行”轻量“线程数量。它们不是为了取代线程,而是应该用在那些相对来说经常堵塞的代码中,就如同担任真正异步线程的角色
new Fiber<V>() { @Override protected V run() throws SuspendExecution, InterruptedException { // your code } }.start();
Comsat介绍
Comsat又是什么?
Comsat还是Parallel Universe提供的集成Quasar的一套开源库,可以提供web或者企业级的技术,如HTTP服务和数据库访问。
Comsat并不是一套web框架。它并不提供新的API,只是为现有的技术如Servlet、JAX-RS、JDBC等提供Quasar fiber的集成。
它包含非常多的库,比如Spring、ApacheHttpClient、OkHttp、Undertow、Netty、Kafka等。
相关文章推荐
- 自动生成JavaBean的轻量级小工具
- 轻量级的代码生成方案选择
- 用 .NET 开发的轻量级 UI 测试自动化
- 通过轻量级领域定义建模改善开发人员的生产力
- 轻量级Ajax解决方案:Anthem.NET初探
- 基于struts+spring+ibatis的轻量级J2EE开发
- [转]基于struts+spring+ibatis的轻量级J2EE开发
- 基于struts+spring+ibatis的轻量级J2EE开发
- 基于Spring的轻量级Web Service事务管理框架及其实现
- 开源纯C#轻量级数据库引擎:SharpHSQL 1.0.3.0版本
- 开始全心投入《深入Spring 2:轻量级J2EE开发框架原理与实践》
- 自己编写基于MVC的轻量级PHP框架.
- 轻量级数据持久层 Seaking.PL 2.1 使用说明 (二)
- 与AutoHotKey类似的轻量级自动化测试工具 - AutoIt
- 【转载】移植多款轻量级 Web服务器到ARM-Linux系统
- Obj2db 轻量级ORM框架
- 轻量级程序编辑器的选择:EmEditor、Editplus等---Web开发系列之工具篇(一)
- 40个轻量级的专一JavaScript库(更新)
- 40 个轻量级 JavaScript 库
- 企业级开发中轻量级与重量级划分(09-03-28)