wangjie_fourth

may the force be with you

0%

CompletableFuture是jdk8推出的新特性。其出现目的是为了解决Java在异步编程、响应式编程的缺失,对标的Java框架是Reactive Streams之类的Spring Reactor、RxJava、Akka Streams等等。

阅读全文 »

Here's something encrypted, password is required to continue reading.
阅读全文 »

Gradle

介绍

Gradle是可以构建任何语言项目、在软件构建过程中极端灵活、对于大型项目构建性能更好、但学习成本比较高的一个软件构建工具。

构建任何语言:Gradle是完全允许用户自定义一个软件的构建流程。你可以自己写自己项目的构建过程,或者使用别人写好插件
极端灵活:Gradle是构建过程是动态,你可以在build.gradle动态指定某个任务,也就是说你可以通过在命令行、gradle.properties指定任何参数来动态的决定软件的构建流程
构建性能更好:Gradle采用增量构建等机制来避免不必要的流程
学习成本高:Gradle的构建脚本是使用GroovyKotlinDSL来指定的,这也就意味着刚接触Gradle时,很难理解整个构建流程在做什么事

阅读全文 »

1、它实现了ConcurrentMap接口,该接口定义了一些原子操作约定
2、线程安全

  • 完全的并发读和高并发写
  • 读操作完全无锁,牺牲了一致性;写操作部分有锁
  • 它与HashTableCollections.synchronizedMap
  • HashMap支持nullConcurrentHashMapHashTable不支持null

3、java7

  • 分段锁
  • 哈希表/链表

4、java8

  • CAS + Unsafe
  • 哈希表/链表 + 红黑树
阅读全文 »

MySQL事务的实现是在引擎级别上的,现在InnoDB存储引擎是支持事务的

阅读全文 »

今天在看到RedisIO多路复用时,顺便总结一下在Unix上各个IO模型,以及他们在网络服务中的应用过程。

阅读全文 »

什么是零拷贝

零拷贝技术是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另一个特定区域,并且尽可能的让CPU少参与到复制的过程。这种技术通常用于通过网络传输文件时节省CPU周期和内存带宽。
现在常见实现方式是CPU将这种复制操作指定给DMA,由DMA来完成这个数据转移,CPU在整个过程中只需要执行几个指令即可。

阅读全文 »