原创 Netty基本組件模型簡單說明

Netty的基本組件包括Channel、ChannelHandler、ChannelPipeline和EventLoop。其中,Channel可以看做是一個連接(相當於一個Socket),在其上會有傳入和傳出的數據。Netty使用

原创 CPU緩存實現方式:VIVT、VIPT和PIPT

處理器在進行存儲器訪問時,處理器訪問的是虛擬地址,經過TLB和MMU的映射,最終變成了物理地址。那麼在查詢cache組的時候,需要使用虛擬地址的索引域或者物理地址的索引域(Index),同樣地,在查詢到cache組之後,可以使用虛

原创 Jackson @JsonView註解自定義返回POJO類的字段

Jackson在Spring框架中可以用來將數據以JSON的格式返回給客戶端,@JsonView註解可以作用在POJO類的屬性上,用來自定義返回的類的字段,比如一個用戶類,有時只需要返回ID,有時卻需要返回ID和姓名: publi

原创 Linux向進程發送信號及執行信號處理函數的時機

Linux內核中由於不同原因(例如非法地址、按下Ctrl+C、用戶進程系統調用等等)向進程發送信號的函數調用路徑最後公用的函數是send_signal(),這個函數位於linux-3.13/kernel/signal.c文件中。這

原创 Linux內核進程調度函數schedule()的觸發和執行時機

內核的調度操作分爲觸發和執行兩個部分,觸發時僅僅設置一下當前進程的TIF_NEED_RESCHED標誌,執行的時候則是通過schedule()函數來完成進程的選擇和切換。當前進程的thread_info->flags中TIF_NE

原创 Git實用技巧

git log --all:查看所有分支上的日誌。默認情況下只查找當前分支的日誌。 git log -S:查看有關某個關鍵字的日誌,如git log -Spassword git branch -vv:查看本地分支與上游分支的對

原创 yocto運行時依賴規則

動態庫依賴。yocto在do_package時會保存每個包提供的.so文件等信息,在運行時,如果檢測到包A鏈接了包B提供的.so文件,那麼會自動把B添加到A的依賴中 pc文件依賴。yocto在構建時會使用pkgconfig生成包

原创 Docker環境配置ffmpeg nvidia加速

Docker環境是ubuntu 16.04 xenial,實際上是tensorflow/tensorflow:1.13.1-gpu-py3的image。 主機爲ubuntu 19.04,,剛release就把筆記本系統升級,也是沒

原创 Jenkins使用httpRequest插件報錯unable to find valid certification path to requested target

原因:JVM未能找到對方網站的證書 解決方案:手動下載對方網站的證書並添加到JVM的信任列表中 解決步驟: 找出jenkins運行的JVM,進入其jre/lib/security目錄 使用openssl導出對方網站的證書:ope

原创 一條命令解壓當前目錄下所有rpm包

find . -type f -print0 | xargs -0 -I x sh -c 'rpm2cpio x | cpio -idv' 說明: find -print0表示將find到的文件以null字符分開,而xargs

原创 yocto依賴關係小結

首先說明,yocto中的依賴本質上是任務之間的依賴,即使是使用DEPENDS或者RDEPENDS定義的兩個recipe之間的依賴關係,但實際上在yocto運行時依賴關係還是會體現在這兩個recipe中的task之間,即在運行時,y

原创 JOOQ 爲table和view自動生成代碼

JOOQ是一個Java的ORM框架,提供了基本的SQL構建、執行等功能,並且使用了鏈式的API,代碼整潔易懂。JOOQ也提供了代碼自動生成的功能,也就是根據數據庫中的表或者視圖生成相應的Java Bean,具體如下,在maven裏

原创 Java調用Python腳本並獲取返回值

在Java程序中有時需要調用Python的程序,這時可以使用一般的PyFunction來調用python的函數並獲得返回值,但是採用這種方法有可能出現一些莫名其妙的錯誤,比如ImportError。在這種情況下可以採用另一種方法:

原创 vim 正則替換

在正則表達式中以\(和\)括起來的部分,在後面可以使用\1、\2來訪問。如將file.endswith(".h")替換成suffix == ".h",可以使用命令 :1,$s/file.endswith(\(.*\))/suffi

原创 解決WSL中文件owner全部爲root的問題

在/etc/wsl.conf中添加內容如下: [automount] enabled = true options = "metadata" mountFsTab = false 重啓windows,再登錄WSL的bash就會發