原创 使用context manager創建thrift client的統一入口

"""Utilities for building the thrift transport client.""" import contextlib from thrift.protocol import TBinaryPro

原创 C#語言知識彙總

下面的內容是基於前面的C和C++語言知識基礎上延伸的 C#是一個現代的,面向對象的,面向組件的,結構化語言。由微軟開發,它的構想雖然十分直接C和C++,但是它和java非常相似。 C#是.Net框架的一部分,用於編寫.Net應用程

原创 操作系統底層技術分享會議筆記

linux爲powerpc的架構 32位操作系統支持的地址空間爲4G risk cpu性能依賴編譯器 x86 硬件 程序需要絕對地址虛的就是絕對地址,實的位物理地址 虛實地址的轉換,41位的虛擬地址能支持1T的地址空間 PID存放

原创 c語言實現單向鏈表和雙向鏈表

鏈表:它是一種物理儲存單元上的非連續,非順序的儲存結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現。鏈表由一系列結點組成,每個結點包括兩部分,一個是儲存數據元素的數據域,一個是儲存下一個結點地址的指針域 順序表:順序表是使用

原创 C語言知識彙總

彙編語言:爲特殊的中央處理單元設計的一系列內部指令,使用助記符表示,不同的CPU系列使用不同的彙編語言 C語言具有彙編語言才能具有的微調控制能力,可以根據具體情況微調程序獲得最大的運行速度或者有效的使用內存。 編譯器和解釋器的區別

原创 C++語言知識彙總

C++的基本用法 C++是一種靜態類型的,編譯式的,通用的,大小寫敏感的,不規則的編程語言,支持過程化編程,面向對象編程和泛型編程的中級語言。 C++的編譯方法: g++ runoob1.cpp runoob2.cpp -o ru

原创 使用line_profiler工具分析python代碼性能以及性能調優

line_profiler是一個對函數進行逐行分析的模塊,kernprof是一個可以運行line_profiler或者python標準庫cProfile的一個很方便的腳本工具。 安裝: $ pip install line_pro

原创 Nginx配置https

公鑰和私鑰: A有兩把鑰匙,一個是公鑰,一個是私鑰 公鑰是可以給別人的,所有A給了X,Y,Z三個人公鑰(三個人的公鑰是相同的) 場景一: X給A寫一封私密的信,所以用A的公鑰加密,那麼A收到信後,可以使用他自己手上的私鑰解密,那

原创 Redis實現消息隊列

異步任務: 很多時候服務器做的事情不需要客戶端等待,所以可以把這些任務異步去做,主要原理是處理通知消息,然後針對通知消息通常是採取的隊列結構。 實現消費者和生產者的方式很多,可以使用Python的標準庫Queue: import ra

原创 任務隊列/任務調度:Celery和APScheduler

Celery VS APScheduler: celery: celery是一個專注於實時處理和任務調度的任務隊列,任務就是消息(消息隊列使用rabbitmq或者redie),消息中的有效載荷中包含要執行任務的全部數據。我們通常將ce

原创 Blinker信號庫 for Python

blinker是一個python的信號庫,既支持簡單的對象到對象通信,也支持針對多個對象進行組播,信號就是在框架的核心功能或者一些Flask拓展發生動作時所發送的通知,可以幫助解耦應用,解耦就是模塊間的耦合嚴重了,修改一些東西,可能會

原创 dogpile.cache

dogpile是一種控制結構,它允許選擇單個執行線程作爲某些資源的“創建者”,同時允許其他執行線程在創建過程中引用此資源的先前版本。 dogpile.cache是​​一個緩存API,它提供了一個通用接口來緩存任何種類的後端。 首先安裝

原创 Flask-REST-JSONAPI

Flask-REST-JSONAPI是Flask的擴展,它爲JSONAPI 1.0規範提供了極大的靈活性,可以快速構建REST API。 Logical data abstraction邏輯數據抽象 這是將資源暴露給api,而不是對

原创 linux終端使用terminator+zsh並且使用oh my zsh美化

安裝terminator: sudo apt-get install terminator 安裝zsh取代bash: sudo apt-get install zsh 將zsh設置爲默認的shell: chsh -s $(w

原创 切換python版本(Could not import python modules: apt, apt_pkg. Please install python3-apt package)

假設原本機子上面就有python2.7,然後我們使用pyenv安裝了python3.6 Method one 下面我們爲python2.7和3.6分別設置權重: sudo update-alternatives --install /