高并发除了java还可以用什么-clojure,go,rust
2012-03-09 15:38
260 查看
java的锁和CAS都是开销惊人的(锁会调用本地系统进行线程阻塞和唤醒开销巨大).
Actor的消息队列也会有自己的严重问题(使用Actor又会使得编程复杂度大大提高).
所以分布式开发其实是按照业务特性,妥协出最优方案.
在写少读多的并发场景下:clojure的STM,通过多版本控制以空间换时间,提供了类似MVCC的内存事务回滚, ,简单高效到了极致.
大量写的情况下go/rust在CAS上抽象出的task机制也可以让CAS开发变得相当简单
Actor的消息队列也会有自己的严重问题(使用Actor又会使得编程复杂度大大提高).
所以分布式开发其实是按照业务特性,妥协出最优方案.
在写少读多的并发场景下:clojure的STM,通过多版本控制以空间换时间,提供了类似MVCC的内存事务回滚, ,简单高效到了极致.
大量写的情况下go/rust在CAS上抽象出的task机制也可以让CAS开发变得相当简单
相关文章推荐
- 我们可以从Java的HelloWorld中学到什么?
- 第2章 Java编程基础——FAQ2.11 int和Integer都可以作为整数类型, 那么它们有什么区别?
- 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
- Java可以做什么及可以给我们带来什么?
- 关于java环境的意义,以前只是配置,没有明白是什么意思可以看看。
- java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用
- 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
- java有几种方法可以实现一个线程?用什么关键字修饰同步方法?
- 29-java中Switch参数可以是什么?
- 一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制
- SharePoint Workflow出了问题, 除了ULS log还可以看什么日志?
- JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?在 try 块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- Java可以做什么及可以给我们带来什么?
- Java常考面试题11 内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?
- 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
- Java培训机构可以学到什么技能
- java 有什么方法可以动态或循环的生成对象名
- java百问---从Hello World中你可以学到什么?
- 除了基本职责,软件测试人员还可以做什么?