原创 Netty TCP Hello 實例

TCP Server Netty的服務之一是TCP服務。要創建Netty TCP服務,必須:  創建一個EventLoopGroup  創建和配置ServerBootstrap  創建一個ChannelInitializer  啓動服務器

原创 Java 非阻塞式通信中需要了解的概念:Future

Java 非阻塞式通信中需要了解的概念:Future Netty 中 ChannelFuture 和 Promise 都是繼承 java.util.concurrent.Future,所以有必要好好總結一下。   1.Future 的介紹

原创 Netty 幾個重要的核心組件

爲了瞭解Netty的工作原理,對Netty的內部設計有一個總體瞭解是很有用的。幾個核心概念: Bootstrap EventLoopGroup EventLoop SocketChannel ChannelInitializer Chan

原创 java fork任務爲多個小任務以提升任務性能

在執行一個大任務時,可以將其fork爲多個小任務,最後join得到結果。 fork任務主要是要設置一個閥值 THRESHOLD,不宜過小,也不宜過大,否則起不到提升性能的作用。 package com.learn.corejava.th

原创 Java NIO 簡介 - 基本概念

Netty 是基於 Java NIO 的封裝。 Java NIO(新IO)是Java的替代IO API(來自Java 1.4),意味着可以替代標準Java IO和Java Networking API。 Java NIO提供了與標準IO

原创 Netty:測試 Encoder 和 Decoder

最近用了一段時間的Netty,現構建了一個編碼器/解碼器管道,以測試編碼器和解碼器在沒有發送真實的消息時是否在正常工作。 方便的是,Netty 有個 EmbeddedChannel,使測試變得非常輕鬆。  假設我們有一條消息“ Foo”,

原创 Netty 核心: ChannelPipeline

Netty ChannelPipeline是Netty中非常核心的概念。每個SocketChannel包含一個ChannelPipeline。 ChannelPipeline包含ChannelHandler實例的列表。當數據進入和寫出So

原创 Netty SSL 驗證實例

Netty 官方支持 SSL 驗證,並自帶有實例代碼,下面代碼示例基本源自官方 demo:   1.服務端 package com.learn.netty.ssl; import io.netty.bootstrap.ServerBo

原创 Java Netty 教程

Netty是用於Java的高性能IO工具包。 Netty是開源的,因此可以自由使用它,甚至可以爲它做出貢獻。該Netty教程將解釋Netty的工作方式以及如何開始使用Netty。但本教程不會涵蓋Netty的每一個細節。   Netty官網

原创 收藏一些有用的開發類型、下載類型和工具類型網址

網站收藏集合: 1.http://www.allitebooks.org/ 原版IT開發類書籍PDF下載網站,文件超清晰。 2.https://convertio.co/zh/ 文件轉換網站,支持圖片格式轉換、文檔格式轉換、小說格式轉換、

原创 Java NIO 中核心概念

Java NIO由以下核心組件組成: Channels Buffers Selectors   Java NIO本身有很多的類和組件,但是我認爲Channel,Buffer和Selector構成了API的核心。其餘的組件(例如Pipe和F

原创 java 8 理解flatmap

You will get a stream of streams, like [... ["y", "o", "u", "r"], ["b", "o", "a", "t"], ...] To flatten it out to a str

原创 Flask 在 Gunicorn 中日誌記錄沒有保存的問題

Flask 在 Gunicorn 中日誌記錄沒有保存的問題  

原创 Gunicorn + Flask 中 MySQL 連接問題

Gunicorn + Flask 部署   測試發現:MySQL線程池無用,不論多少併發,MySQL使用使用連接數爲 1。   經過各種測試後,目前認爲是 GIL 的問題,全局鎖造成只有單線程在執行。(不確定,單現在只有這種能解釋通)

原创 Java 線程 Interrupt 方法

Thread t = new Thread(() -> { while (!Thread.currentThread().isInterrupted()) { System.out