原创 線程池中線程數量如何設定

一般說來,大家認爲線程池的大小經驗值應該這樣設置:(其中N爲CPU的個數) 如果是CPU密集型應用,則線程池大小設置爲N+1 如果是IO密集型應用,則線程池大小設置爲2N+1 如果一臺服務器上只部署這一個應用並且只有這一個線程池,那麼這

原创 Linux查進程和端口

#查進程有兩個命令 ps -ef ps aux #過濾掉想要查的進程 ps -ef |grep java #殺掉某個進程 kill -9 processId #查端口 netstat -lntup #查看某個端口詳細的信息 lsof -i:

原创 start() && run()、Runnable && Callable、Thread && Runnable

線程的定義:“線程是一種輕量級的進程,是由進程派生出來的子任務,它是程序執行的一個路徑;每個線程都有自己的局部變量表、程序計數器(指向真正執行的指令指針)以及各自的生命週期” start() && run() 要搞清楚這個問題,需要我們明確

原创 Linux查看系統的狀態

top: 實時查看進程的狀態 load average:在特定時間間隔內運行隊列中(在CPU上運行或者等待運行多少進程)的平均進程數。 load average 有三個值,分別代表:1分鐘、5分鐘、15分鐘內運行進程隊列中的平均進程數量。

原创 start() && run()、Runnable && Callable

線程的定義:“線程是一種輕量級的進程,是由進程派生出來的子任務,它是程序執行的一個路徑;每個線程都有自己的局部變量表、程序計數器(指向真正執行的指令指針)以及各自的生命週期” start() && run() 要搞清楚這個問題,需要我們明確

原创 線程池正確使用姿勢

爲什麼不推薦使用Executors 底層確實是通過LinkedBlockingQueue實現的,默認不設置隊列大小的話,將是一個無邊界的阻塞隊列,最大長度爲Integer.MAX_VALUE,而創建這麼多線程,必然就有可能導致OOM,報錯如

原创 Netty工作原理架構

初始化並啓動Netty服務端過程如下: public static void main(String[] args) { // 創建mainReactor NioEventLoopGroup boosGroup

原创 Netty架構設計

功能特性 傳輸服務 支持BIO和NIO 容器集成 支持OSGI、JBossMC、Spring、Guice容器 協議支持 HTTP、Protobuf、二進制、文本、WebSocket等一系列常見協議都支持。 還支持通過實行編碼解碼邏輯來

原创 Netty線程模型

Reactor線程模型 Reactor是反應堆的意思,Reactor模型,是指通過一個或多個輸入同時傳遞給服務處理器的服務請求的事件驅動處理模式。 服務端程序處理傳入多路請求,並將它們同步分派給請求對應的處理線程,Reactor模式也叫Di

原创 Netty爲什麼高性能

Netty作爲異步事件驅動的網絡,高性能之處主要來自於其I/O模型和線程處理模型,前者決定如何收發數據,後者決定如何處理數據 異步非阻塞通信 Netty的非阻塞I/O的實現關鍵是基於I/O複用模型,這裏用Selector對象表示: Ne

原创 Netty是什麼

本文基於Netty4.1展開介紹相關理論模型,使用場景,基本組件、整體架構 Netty簡介 Netty是 一個異步事件驅動的網絡應用程序框架,用於快速開發可維護的高性能協議服務器和客戶端。 JDK原生NIO程序的問題 JDK原生也有一套網絡

原创 使用Soap生成的Java客戶端調用WebService時遇到的問題

今天和局方聯調XX接口時,遇到如下錯誤,花了不少時間排查,特來記錄一下 com.sun.xml.internal.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of Inaccessi

原创 JVM之垃圾收集策略

背景:看完《深入理解Java虛擬機》和相關博客,對JVM還是沒有一個條理清晰的認識,遂提取了書中相關知識點和參考相關優秀博客並整理成JVM專題博文系列,幫助自己鞏固並理清有關JVM的知識重點,也分享出來給有需要的童鞋,如有差錯,歡迎拍磚!

原创 JVM之垃圾收集算法

背景:看完《深入理解Java虛擬機》和相關博客,對JVM還是沒有一個條理清晰的認識,遂提取了書中相關知識點和參考相關優秀博客並整理成JVM專題博文系列,幫助自己鞏固並理清有關JVM的知識重點,也分享出來給有需要的童鞋,如有差錯,歡迎拍磚!