原创 netty極簡教程(七):Netty中的Selector是如何配合NioEventLoop工作的

上一節我們找到了ServerSocketChannel的生成,註冊Selector,綁定端口啓動等等:netty極簡教程(六):Netty是如何屏蔽ServerSocketChannel啓動的, 接下來接續驗證在Netty中Selector

原创 netty極簡教程(六):Netty是如何屏蔽ServerSocketChannel啓動的

現在我們已經基本瞭解了netty底層使用的組件,就明白了netty爲什麼是事件驅動模型:(netty極簡教程(四):netty極簡教程(五):Netty的Reactor模型演進及JDK nio聊天室實現, 接下來追蹤下netty的啓動源碼,

原创 netty極簡教程(五):Netty的Reactor模型演進及JDK nio聊天室實現

介紹了jdk實現nio的關鍵Selector以及SelectableChannel,瞭解了它的原理,就明白了netty爲什麼是事件驅動模型:(netty極簡教程(四):Selector事件驅動以及SocketChannel 的使用,接下來將

原创 netty極簡教程(四):Selector事件驅動以及SocketChannel的使用

介紹了nio中的channel概念以及FileChannel的使用: (netty極簡教程(三): nio Channel意義以及FileChannel使用)[https://www.jianshu.com/p/b8d08fa240e2],

原创 netty極簡教程(二): nio Buffer的原理及使用

我們知道,netty直接與jdk的原生nio開發的,可以說是jdk nio的增強,所以理解jdk nio的機制就變得非常重要,接下來將介紹jdk中關於nio的幾個非常重要的組件, 示例源碼: https://github.com/jsbin

原创 netty極簡教程(三): nio Channel意義以及FileChannel使用

上一章接單介紹了jdk nio中的容器Buffer的原理及使用: (netty極簡教程(二): nio Buffer的原理及使用)[https://www.jianshu.com/p/9a9feee6099e], 接下來我們繼續聊聊jdk

原创 從未這麼明白的設計模式(四):策略模式

本文原創地址:jsbintask的博客(食用效果最佳),轉載請註明出處! 前言 策略模式是一種行爲模式,它用以運行時動態的改變類的行爲,通過將一系列類似的算法封裝成不同的類來達到目的,可以有效減少代碼中if else的冗餘。它實現的關

原创 從未這麼明白的設計模式(三):裝飾器模式

本文原創地址:jsbintask的博客(食用效果最佳),轉載請註明出處! 同系列文章: 從未這麼明白的設計模式(二):觀察者模式 從未這麼明白的設計模式(一):單例模式 前言 裝飾器模式是爲了運行時動態的擴展一個類的功能。它謹遵開閉原

原创 神奇的Unsafe,你get了嗎

本文原創地址,我的博客:https://jsbintask.cn/2019/05/05/jdk/jdk8-unsafe/(食用效果最佳),轉載請註明出處! 簡介 Unsafe是jdk提供的一個直接訪問操作系統資源的工具類(底層c++實

原创 快排,堆排序介紹

快速排序 首先任意選取一個數據(通常選用數組的第一個數)作爲關鍵數據,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱爲一趟快速排序 最好情況:每次劃分過程產生的區間大小都爲n/2,一共需要劃分log2n次,每次

原创 IP協議簡介

IP 協議簡介 IP 協議位於 TCP/IP 協議的第三層——網絡層。與傳輸層協議相比,網絡層的責任是提供點到點(hop by hop)的服務,而傳輸層(TCP/UDP)則提供端到端(end to end)的服務。 IP 地址的分類 A類地

原创 網絡通信協議簡介

TCP/IP OSI是一個理論上的七層網絡通信模型,而TCP/IP則是實際運行的四層網絡協議。TCP/IP包含: 網絡接口層,主機必須使用某種協議與網絡相連 網絡層,使主機可以把分組發往任何網絡,並使分組獨立地傳向目標。IP協議 傳輸層,

原创 Linux中的文件存儲,磁盤調度

磁盤調度 磁盤訪問延遲 = 隊列時間 + 控制器時間 + 尋道時間 + 旋轉時間 + 傳輸時間 磁盤調度的目的是減小延遲,其中前兩項可以忽略,尋道時間是主要矛盾。 磁盤調度算法 FCFS 先進先出的調度策略,這個策略具有公平的優點,因爲

原创 線程和進程區別

線程和進程區別 進程是資源分配的最小單位,線程是程序執行的最小單位。 進程有自己的獨立地址空間,每啓動一個進程,系統就會爲它分配地址空間,建立數據表來維護代碼段、堆棧段和數據段,這種操作非常昂貴。而線程是共享進程中的數據的,使用相同的地址

原创 Leetcode經典數據庫練習

595. Big Countries https://leetcode.com/problems/big-countries/description/ Description +-----------------+------------+