调优之池化技术和异步化以及锁优化

对象池

http://commons.apache.org/proper/commons-pool/index.html

异步化

本地调用异步化

  • 线程池技术
  • @Async注解
  • 生产者消费者模式(MQ等)

远程调用异步化

  • AsyncRestTemplate
  • WebClient(spring 5)

Sychronized

对象头:Mark word,类型指针,数组长度

 

优化机制

  • 锁分级
  • 锁消除
  • 锁粗化

ReentrantLock

公平锁;如果一个线程持有锁或者其它线程在等待队列中等待这个锁,那么新发出的请求的线程将被放入到队列中

非公平锁:当锁被某个线程持有时,新发出请求的线程才会被放入到队列中。如果在发出请求时,锁变成可用状态,这个线程会跳过队列中的等待线程获得锁

ReentrantReadWriteLock

调优之池化技术和异步化以及锁优化

上一篇:commons-io工具包的基本使用


下一篇:使用spark来处理CSV文件数据