在 Python 3.8 以後的版本中,異步編程變得越來越重要。本文將系統介紹 Python 標準庫中的異步編程工具,帶領大家掌握 async/await 語法和 asyncio 的使用。 從一個簡單的場景開始 假設我們在處理一些耗時的 I/O 操作,比如讀取多個文件或處理多個數據。為了模擬這種場景,我們先用 time.sleep() 來代表耗時操作: import time import ran
你一定聽説過 Go 語言所倡導的這個核心併發原則:“不要通過共享內存來通信,而要通過通信來共享內存 (Don't communicate by sharing memory; instead, share memory by communicating)”。這一理念深刻影響了 Go 的併發設計。 本文將具體討論 Go 中的 併發控制機制 (concurrency control mechanism
最大堆、最小堆、 heap 、 優先隊列在數據結構算法題目裏都是一個東西。這裏討論 container/heap 的使用。 參考: https://pkg.go.dev/container/heap https://github.com/EndlessCheng/codeforces-go/blob/master/copypasta/heap.go 靈佬筆記,非常有用 在算法題目中,我們經
來看一個常見的場景 假設你正在開發一個數據備份腳本。這個腳本需要執行以下操作: 創建臨時工作目錄 將數據複製到臨時目錄 壓縮打包 清理臨時文件 #!/bin/bash WORK_DIR="/tmp/backup_$(date +%Y%m%d)" echo "開始備份..." mkdir -p "$WORK_DIR" echo "創建臨時目錄: $WORK_DIR" echo "複
本文是 2025-0526-go-gc.md 的續篇。在理解了 Go 垃圾回收(Garbage Collection, GC)的宏觀設計,包括併發標記清掃、三色標記法以及混合寫屏障等核心機制之後,一個自然而然O問題是:這些通用的 GC 原理是如何與 Go 語言內建(built-in)的數據結構(如切片、映射等)協同工作的?這些我們日常使用的工具,其內存的生命週期管理背後又有哪些值得注意的細節? 本
在 MacOS 上直接編譯 Linux Kernel 在我看來並不是一個很好的選擇: 我不喜歡 MacOS 的第三方包管理工具 brew 我不希望在沒有隔離的情況下安裝一堆我不瞭解的工具 或者説,在 Ubuntu 上調試 Linux Kernel 才是一個更誘人的選擇: apt 生態很好 基於 Ubuntu gcc 工具鏈編譯 Linux Kernel 社區討論更多,支持更完善 於