原创 Python多線程編程(二):線程安全與鎖

主要參考文章:https://www.cnblogs.com/ArsenalfanInECNU/p/10022740.html 1.線程安全與鎖 2. Threading.Lock實現互斥鎖(mutex) 3.  死鎖的產生及處理 3.1

原创 Python多線程編程(一):GIL鎖

目錄 1.GIL鎖定義 2. 什麼是線程安全,什麼又是原子操作? 2.1 線程安全 2.2 原子操作 2.2.1 什麼是原子操作 2.2.2 如何分辨原子操作與非原子操作 3. GIL的優點與缺點 4. 爲什麼會有GIL,GIL的歷史 5

原创 linux shell腳本攻略 第二章 命令之樂 cat,find,tr,sort,uniq,split等

目錄 1. 使用cat進行拼接 2.錄製並回放終端會話 3.find命令 4. xargs命令 5. tr命令進行轉換 6.校驗和與覈實(md5) 7.加密工具與散列 8.排序,唯一與重複 9.臨時文件命名 10.分割文件和數據 11.根

原创 linux shell腳本攻略 第四章 讓文本飛 grep,cut,sed,awk,paste

目錄1.正則表達式2.使用grep搜索文本3.使用cut按列切分文件4.使用sed進行替換5.awk高級文本處理6.按列合併文件(paste)7.打印兩個pattern之間的文本8.倒序打印文本9.替換目錄中所有文件的文本 1.正

原创 linux shell腳本攻略 第八章 當個好管家 監控磁盤 du,time,iotop,inotifywait 等

這裏寫目錄標題1.查看磁盤使用2.計算命令執行時間3.收集登錄用戶信息4.監控命令輸出(watch)5.記錄文件及目錄訪問(inotifywait)6.使用syslog監控日誌(logger)7.監控io(iotop)8.檢查磁盤

原创 linux shell腳本攻略 第六章 歸檔和壓縮rsync,git

1.用rsync備份系統快照 對位於不同位置的文件和目錄進行同步。與cp區別:差異化傳輸數據,只有當更新時才複製,支持壓縮,加密等。 rsync -av src_path dst_path -a:要進行歸檔 -v:在stdout打

原创 linux shell腳本攻略 第五章 一團亂麻(web處理) wget curl

1.從web下載(wget) wget url1 url2 url3 wget -t 5:重試次數,-t 0爲一直重試 –limit-rate 20k:限速 -c:斷點續傳 –quota 100m:下載最大限額 --mirror

原创 linux shell腳本攻略 第一章 小試牛刀 基本操作,變量,函數,管道等

目錄   1.終端打印 1.1 實戰 1.2 補充內容 2. 玩轉變量 2.1 進程環境變量 2.2 常見變量使用 2.3 補充內容 3. 使用函數添加環境變量 4. shell數學計算 5. 文件描述符及重定向 5.1 重定向默認描述符

原创 linux shell腳本攻略 第九章 管理重任 調度,進程管理 ps,top,pgrep,kill,crontab用法等

這裏寫目錄標題1.收集進程信息(ps,top,pgrep)2.殺死進程(kill,trap)3.向用戶終端發送消息4.使用proc採集進程信息5.使用crontab進行調度 1.收集進程信息(ps,top,pgrep) ps常用

原创 linux shell腳本攻略 第三章 以文件之名 find,chmod,touch,head,tail,tree,wc

目錄 1.生成任意大小的文件 2.文本文件的交集與差集 3.查找並刪除重複文件 4.文件和目錄權限 5.創建不可修改的文件 6.修改文件訪問時間 7.查找符號鏈接與指向目標 8.查找文件差異並進行修補 9.head與tail 10.pus

原创 Python多線程編程(三):threading模塊的類與函數之基本類

主要參考文章:https://www.cnblogs.com/ArsenalfanInECNU/p/10134591.html threading是python中用於線程相關操作的模塊。python當前版本的多線程庫沒有實現優先級、線程組

原创 gtest安裝(linux)

使用源代碼安裝 目前源代碼包括了gmock和gtest兩個工具,在安裝時可以兩個工具同時安裝。 下載源代碼:git clone https://github.com/google/googletest 下面的步驟需要用到cmake,如果沒

原创 菜鳥刷leetcode 19. Remove Nth Node From End of List

我做的還是最簡單粗暴的做法,因爲想不出簡單算法,也不知道怎麼只用一個loop。。 於是用c, struct ListNode* removeNthFromEnd(struct ListNode* head, int n) { st

原创 壓縮感知入門--論文解讀 1.Compressive Sensing by Richard G. Baraniuk

Compressive Sensing是壓縮感知的入門級文章。 首先結合以前的壓縮給出了壓縮感知的優點。即,以往的壓縮,是sample-then-compress framework 即必須先採樣,再壓縮,這種壓縮固有其缺點,即,一,採樣

原创 菜鳥刷leetcode 18.4Sum

是3Sum算法的繼承,只是多了一個循環。3Sum算法要多練習。 代碼: class Solution { public: vector<vector<int>> fourSum(vector<int>& nums, int tar