原创 Kafka的原理和應用分析及和RabbitMQ的對比

1. kafka是什麼 Kafka 是一個分佈式消息流處理平臺,原本開發自 LinkedIn,用作 LinkedIn 的活動流(Activity Stream)和運營數據處理管道(Pipeline)的基礎。現在它已被多家公司作爲多種類

原创 定製Java 8的Parallel Streams使用的線程池

原文鏈接:https://www.baeldung.com/java-8-parallel-streams-custom-threadpool 1. 概述 Java 8引入了流的概念去對數據進行復雜的操作,而且使用並行流(Parall

原创 Java併發編程之Executor框架

1. 概述 java中實現多線程最直接、最基礎的做法是實現Runnable接口、繼承Thread類和實現Callable接口。對於每一個任務創建一個線程的方式,如果任務數量過多,過度消耗資源,會引起內存溢出的問題(Out of Mem

原创 快速入門UML時序圖

使用UML時序圖重構代碼使用UML時序圖時序圖是什麼時序圖的元素組合塊(Combined Fragment)舉例 使用UML時序圖 最近,在重構項目中的老代碼的時候,業務複雜,文檔缺失。抽絲剝繭,沉迷在剪不斷理還亂的紛繁的關係中,像是

原创 【linux驅動分析】之dm9000驅動分析(一):dm9000原理及硬件分析

【linux驅動分析】之dm9000驅動分析(一):dm9000原理及硬件分析  【linux驅動分析】之dm9000驅動分析(二):定義在板文件中的資源和設備以及幾個宏  【linux驅動分析】之dm9000驅動分析(三):sk_

原创 【linux驅動分析】之dm9000驅動分析(三):sk_buff結構分析

【linux驅動分析】之dm9000驅動分析(一):dm9000原理及硬件分析  【linux驅動分析】之dm9000驅動分析(二):定義在板文件中的資源和設備以及幾個宏  【linux驅動分析】之dm9000驅動分析(三):sk

原创 MySQL入門(三)

本學習筆記參考《MySQL必知必會》和官方手冊MySQL 5.6 Reference Manual MySQL入門(一) MySQL入門(二) 本文內容: - MySQL存儲過程 - MySQL遊標 - MySQL觸發器 六、My

原创 DES加密算法的實現

本文內容: 1. 對稱加密 2. 數據加密標準 3. 用c++程序實現DES加密和解密 4. 實驗效果 一、對稱加密 對稱加密也稱爲常規加密、私鑰或單鑰加密。 一個對稱加密由5部分組成: - 明文(plaintext):這是原

原创 linux使用進階(一)

    本文根據《應該知道的Linux技巧》coolshell上的一篇文章提到的Linux技巧,結合自己掌握的情況進行擴展和總結得來。主要包括以下內容:     一、日常操作     二、數據處理     三、系統調試     四

原创 【linux驅動分析】之dm9000驅動分析(六):dm9000_init和dm9000_probe的實現

一、dm9000_init 打印出驅動的版本號,註冊dm9000_driver驅動,將驅動添加到總線上,執行match,如果匹配,將會執行probe函數。 1 static int __init 2 dm9000_init(void) 3

原创 【linux驅動分析】之dm9000驅動分析(五):另外幾個重要的結構體

除了sk_buff和net_device,dm9000驅動中用到的另外幾個重要的結構體 一、platform_driver 定義在include/linux/platform_device.h中,代碼如下: 1 struct pla

原创 find和grep的使用

1、find 語法格式:find  [path]  [options]  [tests]  [actions] [path]是路徑,可以是絕對路徑、相對路徑,或者多個路徑。 [options]下面列出一些主要選項: [test

原创 【linux驅動分析】之dm9000驅動分析(四):net_device結構體

net_device結構體,定義在include/linux/netdevice.h中,這是一個很複雜的結構體,先把代碼清單列出來,再用到的過程中,逐步分析,最後來這裏做個總結。 下面的代碼是linux-2.6.38中的。 1

原创 【linux驅動分析】之dm9000驅動分析(七):dm9000的卸載掛起和恢復以及打開和停止

分析dm9000的卸載,掛起和恢復,以及dm9000的打開和停止。涉及到的函數爲: 1 static int __devexit 2 dm9000_drv_remove(struct platform_device *pdev

原创 【linux驅動分析】ioctl函數的使用

一、用戶空間的ioctl     int  ioctl(int fd, unsigned long cmd, void *data); 第一個參數是文件描述符,第二個參數代表傳遞的命令,它會原樣傳遞給驅動,第三個參數是可選類型的,主