Hike News
Hike News

Go初識-day1-語言特性(高併發與channel的演示)

特性 是現今雲計算時代的C語言 可直接編譯不依賴其他的庫(library) 為靜態語言,執行效率高 垃圾回收C/C++因為給予程序員較自由的內存管理權限,但申請內存空間要是忘記釋放會造成內存洩漏導致記憶體滿載 Golang中有完整的GC機制,可以完整且快速掃描當前程序不需要使用的 對象 或 變量 並回收內存使用再也不需要開發人員主動去管理內存 開發人員可專注業務實現,降低負擔 只需使用new方法 分配內存,完全不用擔心釋放問題

Continue Reading →

Python模塊-協程(yield,greenlet,gevent)

Preface: 不管是線程(threading)或是進程(multiprocessing)都為一種搶占資源(競爭式)的型式執行程序 資源消耗大,且CPU切換耗時 Introduction: 協程為單線程,因此不存在CPU線程之間的切換,效率高 協成為單線程,不存在GIL鎖,且數據取用相對安全 協程為單線程,併發次數幾近無限次,適合用於高併發處理

Continue Reading →

Python模塊-multiprocessing多進程

Preface: Python中同時間一個進程只能有一個線程通過GIL交給其中一個CPU執行 同時間要完成多任務能透過創建多進程(multiprocessing)交給不同CPU執行 進程: 程序是未運行的EXE檔:其還沒運行之前,無法調度系統的資源(內存、設備如滑鼠鍵盤等) 進程是運行起來的程序檔案:其能調度系統資源,稱為進程 操作系統分配資源的基本單位 Introduction: multiprocessing是Python中多進程的管理模塊 其使用方法與多線程(threading)模塊類似,只是環境不同而已 創建進程所耗費的資源較創建線程大

Continue Reading →

Python模塊-Queue隊列

Introduction: queue是python中的標準庫,俗稱隊列,可直接import使用 隊列(queue)為一種數據結構,用於存儲數據(類似列表及字典) 列表及字典不適合用於多線程中使用,在多個線程中,數據是共享的,進行數據交換的時候,不能夠保證數據的安全性和一致性,我們希望多個線程不要執行同一個任務,但使用列表或是字典就容易發生不同線程取到同一組數據或是執行同一個任務的詬病 隊列可以完美解決線程間的數據交換,保證線程間數據的安全性和一致性

Continue Reading →