原创 Java非堆內存的回收

jvm的垃圾回收機制大家應該已經很熟了,jvm主要是回收堆內存,而我我們在開發中會遇到在堆外分配內存的情況,那這部分內存是怎麼回收的呢?java中的堆外內存一般指DirectByteBuffer,他在高性能通信框架netty,mina中使用

原创 Java線程池源碼簡析

上一篇介紹了線程池中的幾種類型,本文來簡單分析一下線程池ThreadPoolExecutor的源碼。首先來看實例域ctl:代表線程池的控制狀態,使用這個變量標識線程池的狀態,它的值通過runState與workCount同時確定。workC

原创 Java線程池類型介紹

JDK的線程池相信大家都有用過,它預先創建好一部分線程,使用完後放回池中,避免了創建與銷燬線程的昂貴開銷,使得性能大大提升,和數據庫連接池是一樣的道理,本文簡單介紹一下java中的幾種線程池。jdk提供了Executors類方便我們創建線程

原创 Spring定時任務

Spring的定時任務使用起來非常方便,但是之前在使用的時候遇到了一些問題,這裏總結一下。並行or串行?在最初使用的時候我以爲多任務會併發執行,然而事實是當有多個任務同時存在的時候,如果我們不進行配置的話,任務之間是串行執行的。來看一個例子