1
0
wiki/Technology/ProgrammingLanguage/Python/进阶/并行和并发.html

506 lines
526 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh"><head><title>并行和并发</title><meta charset="utf-8"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM Plex Mono&amp;family=Noto Serif Simplified Chinese:wght@400;700&amp;family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&amp;display=swap"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="并行和并发"/><meta property="og:description" content="Python 并行和并发."/><meta property="og:image" content="https://wiki.7wate.com/static/og-image.png"/><meta property="og:width" content="1200"/><meta property="og:height" content="675"/><link rel="icon" href="../../../../static/icon.png"/><meta name="description" content="Python 并行和并发."/><meta name="generator" content="Quartz"/><link href="../../../../index.css" rel="stylesheet" type="text/css" spa-preserve/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.css" rel="stylesheet" type="text/css" spa-preserve/><script src="../../../../prescript.js" type="application/javascript" spa-preserve></script><script type="application/javascript" spa-preserve>const fetchData = fetch("../../../../static/contentIndex.json").then(data => data.json())</script></head><body data-slug="Technology/ProgrammingLanguage/Python/进阶/并行和并发"><div id="quartz-root" class="page"><div id="quartz-body"><div class="left sidebar"><h2 class="page-title"><a href="../../../..">🪴 X·Eden</a></h2><div class="spacer mobile-only"></div><div class="search"><button class="search-button" id="search-button"><p>搜索</p><svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.9 19.7"><title>Search</title><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"></path><circle cx="8" cy="8" r="7"></circle></g></svg></button><div id="search-container"><div id="search-space"><input autocomplete="off" id="search-bar" name="search" type="text" aria-label="搜索些什么" placeholder="搜索些什么"/><div id="search-layout" data-preview="true"></div></div></div></div><button class="darkmode" id="darkmode"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="dayIcon" x="0px" y="0px" viewBox="0 0 35 35" style="enable-background:new 0 0 35 35" xml:space="preserve" aria-label="暗色模式"><title>暗色模式</title><path d="M6,17.5C6,16.672,5.328,16,4.5,16h-3C0.672,16,0,16.672,0,17.5 S0.672,19,1.5,19h3C5.328,19,6,18.328,6,17.5z M7.5,26c-0.414,0-0.789,0.168-1.061,0.439l-2,2C4.168,28.711,4,29.086,4,29.5 C4,30.328,4.671,31,5.5,31c0.414,0,0.789-0.168,1.06-0.44l2-2C8.832,28.289,9,27.914,9,27.5C9,26.672,8.329,26,7.5,26z M17.5,6 C18.329,6,19,5.328,19,4.5v-3C19,0.672,18.329,0,17.5,0S16,0.672,16,1.5v3C16,5.328,16.671,6,17.5,6z M27.5,9 c0.414,0,0.789-0.168,1.06-0.439l2-2C30.832,6.289,31,5.914,31,5.5C31,4.672,30.329,4,29.5,4c-0.414,0-0.789,0.168-1.061,0.44 l-2,2C26.168,6.711,26,7.086,26,7.5C26,8.328,26.671,9,27.5,9z M6.439,8.561C6.711,8.832,7.086,9,7.5,9C8.328,9,9,8.328,9,7.5 c0-0.414-0.168-0.789-0.439-1.061l-2-2C6.289,4.168,5.914,4,5.5,4C4.672,4,4,4.672,4,5.5c0,0.414,0.168,0.789,0.439,1.06 L6.439,8.561z M33.5,16h-3c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5h3c0.828,0,1.5-0.672,1.5-1.5S34.328,16,33.5,16z M28.561,26.439C28.289,26.168,27.914,26,27.5,26c-0.828,0-1.5,0.672-1.5,1.5c0,0.414,0.168,0.789,0.439,1.06l2,2 C28.711,30.832,29.086,31,29.5,31c0.828,0,1.5-0.672,1.5-1.5c0-0.414-0.168-0.789-0.439-1.061L28.561,26.439z M17.5,29 c-0.829,0-1.5,0.672-1.5,1.5v3c0,0.828,0.671,1.5,1.5,1.5s1.5-0.672,1.5-1.5v-3C19,29.672,18.329,29,17.5,29z M17.5,7 C11.71,7,7,11.71,7,17.5S11.71,28,17.5,28S28,23.29,28,17.5S23.29,7,17.5,7z M17.5,25c-4.136,0-7.5-3.364-7.5-7.5 c0-4.136,3.364-7.5,7.5-7.5c4.136,0,7.5,3.364,7.5,7.5C25,21.636,21.636,25,17.5,25z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="nightIcon" x="0px" y="0px" viewBox="0 0 100 100" style="enable-background:new 0 0 100 100" xml:space="preserve" aria-label="亮色模式"><title>亮色模式</title><path d="M96.76,66.458c-0.853-0.852-2.15-1.064-3.23-0.534c-6.063,2.991-12.858,4.571-19.655,4.571 C62.022,70.495,50.88,65.88,42.5,57.5C29.043,44.043,25.658,23.536,34.076,6.47c0.532-1.08,0.318-2.379-0.534-3.23 c-0.851-0.852-2.15-1.064-3.23-0.534c-4.918,2.427-9.375,5.619-13.246,9.491c-9.447,9.447-14.65,22.008-14.65,35.369 c0,13.36,5.203,25.921,14.65,35.368s22.008,14.65,35.368,14.65c13.361,0,25.921-5.203,35.369-14.65 c3.872-3.871,7.064-8.328,9.491-13.246C97.826,68.608,97.611,67.309,96.76,66.458z"></path></svg></button><div class="explorer desktop-only"><button type="button" id="explorer" data-behavior="collapse" data-collapsed="collapsed" data-savestate="true" data-tree="[{&quot;path&quot;:&quot;Personal&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2018&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2020&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2021&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2022&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2023&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2024&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/个人成长&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/医学健康&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/历史&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/哲学宗教&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/心理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/政治军事&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/教育学习&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/文学&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/生活百科&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/社会文化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/科学技术&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/经济理财&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/艺术&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/计算机&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W34&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W35&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W36&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W37&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W38&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W39&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W41&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W42&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W43&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W44&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W45&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W46&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W47&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W48&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W49&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W50&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W2&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W3&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W5&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W6&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W7&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W8&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W10&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W12&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W14&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W16&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W22&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W23&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W24&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W25&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W26&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W31&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W32&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W33&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W35&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W36&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W37&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W40&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W45&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W46&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W48&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W49&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W50&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W8&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W10&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W11&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W12&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W14&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W16&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W17&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W22&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W23&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W24&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W29&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W30&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W33&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W35&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Company&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Company/数字化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Company/数字化/规范&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/data-engineer&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/full-stack&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/full-stack/基础&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/full-stack/工具&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/full-stack/文化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/权益保障&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/求职经验&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/简历攻略&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/职业规划&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/职场心得&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/薪酬攻略&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/面试法则&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/sre-engineer&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences/English&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences/Government&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences/Government/中国&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences/Government/中国/标准&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences/Government/中国/法律&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/CloudService&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/CloudService/基础&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork/Nginx&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork/公共服务&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork/应用服务&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork/网络协议&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork/网络基础&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/信息安全&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/信息安全/OpenPGP&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/密码学&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/用户安全&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/用户安全/权限设计&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/用户安全/用户鉴权&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/系统安全&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/系统安全/防火墙&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/网络安全&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/网络安全/OpenSSH&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/网络安全/OpenSSL&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerStorage&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/DatabaseSystem&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/DatabaseSystem/PostgreSQL&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/DatabaseSystem/SQL-语言&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/DatabaseSystem/基础&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/命令行工具&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/命令行工具/PowerShell&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/命令行工具/Shell&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/命令行工具/Vim&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/开源指南&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/文本处理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/版本控制&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/版本控制/Git&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/版本控制/Git/入门&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/版本控制/Git/进阶&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Automation&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Docker&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Docker/基础&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Docker/进阶&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Docker/高级&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/1.文化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/2.安装&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/3.基础操作&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/4.系统管理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/5.安全配置&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/6.网络管理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/7.存储管理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Virtualization&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Virtualization/1.虚拟化概述&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Virtualization/2.KVM虚拟化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Windows&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Windows/文化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/入门&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/文化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块/WEB开发&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块/数据处理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块/文本处理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块/系统交互&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块/网络处理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/进阶&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/项目&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/项目/虚拟环境&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/项目/风格指南&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/SoftwareEngineering&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/SoftwareEngineering/CI-and-CD&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/SoftwareEngineering/协作规范&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/SoftwareEngineering/技术文档&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/StructuresAlgorithms&quot;,&quot;collapsed&quot;:true}]" aria-controls="explorer-content" aria-expanded="false"><h2>探索</h2><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="fold"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div id="explorer-content"><ul class="overflow" id="explorer-ul"><li><div class="folder-outer open"><ul style="padding-left:0;" class="content" data-folderul><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal"><button class="folder-button"><span class="folder-title">Personal</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog"><button class="folder-button"><span class="folder-title">Blog</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2018"><button class="folder-button"><span class="folder-title">2018</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2018"><li><a href="../../../../Personal/Blog/2018/11月28日晚-星期三-霾" data-for="Personal/Blog/2018/11月28日晚-星期三-霾">11月28日 晚 星期三 霾</a></li><li><a href="../../../../Personal/Blog/2018/BombSquad-炸弹人小分队" data-for="Personal/Blog/2018/BombSquad-炸弹人小分队">BombSquad-炸弹人小分队</a></li><li><a href="../../../../Personal/Blog/2018/如何免费创建一个属于自己的网站" data-for="Personal/Blog/2018/如何免费创建一个属于自己的网站">如何免费创建一个属于自己的网站</a></li><li><a href="../../../../Personal/Blog/2018/英雄联盟-S8-全球总决赛" data-for="Personal/Blog/2018/英雄联盟-S8-全球总决赛">英雄联盟 S8 全球总决赛</a></li><li><a href="../../../../Personal/Blog/2018/螺蛳粉" data-for="Personal/Blog/2018/螺蛳粉">螺蛳粉</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2020"><button class="folder-button"><span class="folder-title">2020</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2020"><li><a href="../../../../Personal/Blog/2020/Don`t-Starve-饥荒" data-for="Personal/Blog/2020/Don`t-Starve-饥荒">Don't Starve-饥荒</a></li><li><a href="../../../../Personal/Blog/2020/中国传统历法" data-for="Personal/Blog/2020/中国传统历法">中国传统历法</a></li><li><a href="../../../../Personal/Blog/2020/初号机,起飞!" data-for="Personal/Blog/2020/初号机,起飞!">初号机,起飞!</a></li><li><a href="../../../../Personal/Blog/2020/吉普赛满天星" data-for="Personal/Blog/2020/吉普赛满天星">吉普赛满天星</a></li><li><a href="../../../../Personal/Blog/2020/夏日花记" data-for="Personal/Blog/2020/夏日花记">夏日花记</a></li><li><a href="../../../../Personal/Blog/2020/幸福的事情都是需要等待的" data-for="Personal/Blog/2020/幸福的事情都是需要等待的">幸福的事情都是需要等待的</a></li><li><a href="../../../../Personal/Blog/2020/开源软件之道" data-for="Personal/Blog/2020/开源软件之道">开源软件之道</a></li><li><a href="../../../../Personal/Blog/2020/我的小羊肖恩" data-for="Personal/Blog/2020/我的小羊肖恩">我的小羊肖恩</a></li><li><a href="../../../../Personal/Blog/2020/数据恢复杂谈" data-for="Personal/Blog/2020/数据恢复杂谈">数据恢复杂谈</a></li><li><a href="../../../../Personal/Blog/2020/注定不平凡的一年" data-for="Personal/Blog/2020/注定不平凡的一年">注定不平凡的一年</a></li><li><a href="../../../../Personal/Blog/2020/浅谈个人服务器架构" data-for="Personal/Blog/2020/浅谈个人服务器架构">浅谈个人服务器架构</a></li><li><a href="../../../../Personal/Blog/2020/球鞋日记" data-for="Personal/Blog/2020/球鞋日记">球鞋日记</a></li><li><a href="../../../../Personal/Blog/2020/記拾月" data-for="Personal/Blog/2020/記拾月">記拾月</a></li><li><a href="../../../../Personal/Blog/2020/长安游记" data-for="Personal/Blog/2020/长安游记">长安游记</a></li><li><a href="../../../../Personal/Blog/2020/骑行在路上" data-for="Personal/Blog/2020/骑行在路上">骑行在路上</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2021"><button class="folder-button"><span class="folder-title">2021</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2021"><li><a href="../../../../Personal/Blog/2021/2021" data-for="Personal/Blog/2021/2021">2021</a></li><li><a href="../../../../Personal/Blog/2021/VIVO-IQOO-Neo3-开箱测评" data-for="Personal/Blog/2021/VIVO-IQOO-Neo3-开箱测评">VIVO IQOO Neo3 开箱测评</a></li><li><a href="../../../../Personal/Blog/2021/上有天堂、下有苏杭" data-for="Personal/Blog/2021/上有天堂、下有苏杭">上有天堂、下有苏杭</a></li><li><a href="../../../../Personal/Blog/2021/我开发的第一款软件" data-for="Personal/Blog/2021/我开发的第一款软件">我开发的第一款软件</a></li><li><a href="../../../../Personal/Blog/2021/我站立的地方是中国" data-for="Personal/Blog/2021/我站立的地方是中国">我站立的地方是中国</a></li><li><a href="../../../../Personal/Blog/2021/我还在……" data-for="Personal/Blog/2021/我还在……">我还在……</a></li><li><a href="../../../../Personal/Blog/2021/星光不问赶路人" data-for="Personal/Blog/2021/星光不问赶路人">星光不问赶路人</a></li><li><a href="../../../../Personal/Blog/2021/济南呀济南的泰山之旅" data-for="Personal/Blog/2021/济南呀济南的泰山之旅">济南呀济南的泰山之旅</a></li><li><a href="../../../../Personal/Blog/2021/涝疫结合" data-for="Personal/Blog/2021/涝疫结合">涝疫结合</a></li><li><a href="../../../../Personal/Blog/2021/申请-Jetbrains-开源项目授权" data-for="Personal/Blog/2021/申请-Jetbrains-开源项目授权">申请 Jetbrains 开源项目授权</a></li><li><a href="../../../../Personal/Blog/2021/真·长安游记" data-for="Personal/Blog/2021/真·长安游记">真·长安游记</a></li><li><a href="../../../../Personal/Blog/2021/记拾月" data-for="Personal/Blog/2021/记拾月">记拾月</a></li><li><a href="../../../../Personal/Blog/2021/贰号机、落幕" data-for="Personal/Blog/2021/贰号机、落幕">贰号机、落幕</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2022"><button class="folder-button"><span class="folder-title">2022</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2022"><li><a href="../../../../Personal/Blog/2022/「引用」博客的本质是电线杆子" data-for="Personal/Blog/2022/「引用」博客的本质是电线杆子">「引用」博客的本质是电线杆子</a></li><li><a href="../../../../Personal/Blog/2022/2022" data-for="Personal/Blog/2022/2022">2022</a></li><li><a href="../../../../Personal/Blog/2022/Halo-主题-Redemption-首发版" data-for="Personal/Blog/2022/Halo-主题-Redemption-首发版">Halo 主题 Redemption 首发版</a></li><li><a href="../../../../Personal/Blog/2022/Hello-Halo" data-for="Personal/Blog/2022/Hello-Halo">Hello Halo</a></li><li><a href="../../../../Personal/Blog/2022/Redemption" data-for="Personal/Blog/2022/Redemption">Redemption</a></li><li><a href="../../../../Personal/Blog/2022/Redemption-主题-0.2.1-版本" data-for="Personal/Blog/2022/Redemption-主题-0.2.1-版本">Redemption 主题 0.2.1 版本</a></li><li><a href="../../../../Personal/Blog/2022/一线城市拥有一亩三分地是什么体验" data-for="Personal/Blog/2022/一线城市拥有一亩三分地是什么体验">一线城市拥有一亩三分地是什么体验</a></li><li><a href="../../../../Personal/Blog/2022/三步为你博客文章分析情感关键字" data-for="Personal/Blog/2022/三步为你博客文章分析情感关键字">三步为你博客文章分析情感关键字</a></li><li><a href="../../../../Personal/Blog/2022/不要在饿的时候吃螺蛳粉!" data-for="Personal/Blog/2022/不要在饿的时候吃螺蛳粉!">不要在饿的时候吃螺蛳粉!</a></li><li><a href="../../../../Personal/Blog/2022/习惯养成第一步" data-for="Personal/Blog/2022/习惯养成第一步">习惯养成第一步</a></li><li><a href="../../../../Personal/Blog/2022/人在囧途——青海湖" data-for="Personal/Blog/2022/人在囧途——青海湖">人在囧途——青海湖</a></li><li><a href="../../../../Personal/Blog/2022/人格类型测试" data-for="Personal/Blog/2022/人格类型测试">人格类型测试</a></li><li><a href="../../../../Personal/Blog/2022/你还记得曾经的梦想么?" data-for="Personal/Blog/2022/你还记得曾经的梦想么?">你还记得曾经的梦想么?</a></li><li><a href="../../../../Personal/Blog/2022/使用-Docusaurus-搭建优秀个人wiki" data-for="Personal/Blog/2022/使用-Docusaurus-搭建优秀个人wiki">使用 Docusaurus 搭建优秀个人wiki</a></li><li><a href="../../../../Personal/Blog/2022/关于感情的事情" data-for="Personal/Blog/2022/关于感情的事情">关于感情的事情</a></li><li><a href="../../../../Personal/Blog/2022/关于花" data-for="Personal/Blog/2022/关于花">关于花</a></li><li><a href="../../../../Personal/Blog/2022/关于郑州的互联网记忆" data-for="Personal/Blog/2022/关于郑州的互联网记忆">关于郑州的互联网记忆</a></li><li><a href="../../../../Personal/Blog/2022/再游嵩山" data-for="Personal/Blog/2022/再游嵩山">再游嵩山</a></li><li><a href="../../../../Personal/Blog/2022/最近在折腾什么……" data-for="Personal/Blog/2022/最近在折腾什么……">最近在折腾什么……</a></li><li><a href="../../../../Personal/Blog/2022/最近的生活" data-for="Personal/Blog/2022/最近的生活">最近的生活</a></li><li><a href="../../../../Personal/Blog/2022/写十万字的博客是一种什么感觉" data-for="Personal/Blog/2022/写十万字的博客是一种什么感觉">写十万字的博客是一种什么感觉</a></li><li><a href="../../../../Personal/Blog/2022/写博客的正确姿势---先行版" data-for="Personal/Blog/2022/写博客的正确姿势---先行版">写博客的正确姿势 - 先行版</a></li><li><a href="../../../../Personal/Blog/2022/写博客的正确姿势---测试版" data-for="Personal/Blog/2022/写博客的正确姿势---测试版">写博客的正确姿势 - 测试版</a></li><li><a href="../../../../Personal/Blog/2022/原点" data-for="Personal/Blog/2022/原点">原点</a></li><li><a href="../../../../Personal/Blog/2022/如何免费获得-Jetbrains-正版授权" data-for="Personal/Blog/2022/如何免费获得-Jetbrains-正版授权">如何免费获得 Jetbrains 正版授权</a></li><li><a href="../../../../Personal/Blog/2022/我是关系户" data-for="Personal/Blog/2022/我是关系户">我是关系户</a></li><li><a href="../../../../Personal/Blog/2022/我要拔智齿!!!" data-for="Personal/Blog/2022/我要拔智齿!!!">我要拔智齿!!!</a></li><li><a href="../../../../Personal/Blog/2022/数字文化遗产" data-for="Personal/Blog/2022/数字文化遗产">数字文化遗产</a></li><li><a href="../../../../Personal/Blog/2022/新冠笔记" data-for="Personal/Blog/2022/新冠笔记">新冠笔记</a></li><li><a href="../../../../Personal/Blog/2022/新手村村长" data-for="Personal/Blog/2022/新手村村长">新手村村长</a></li><li><a href="../../../../Personal/Blog/2022/是微风、是晚霞、是来日方长" data-for="Personal/Blog/2022/是微风、是晚霞、是来日方长">是微风、是晚霞、是来日方长</a></li><li><a href="../../../../Personal/Blog/2022/月季到了" data-for="Personal/Blog/2022/月季到了">月季到了</a></li><li><a href="../../../../Personal/Blog/2022/浅谈一下自己折腾的网站" data-for="Personal/Blog/2022/浅谈一下自己折腾的网站">浅谈一下自己折腾的网站</a></li><li><a href="../../../../Personal/Blog/2022/番茄开花啦-~" data-for="Personal/Blog/2022/番茄开花啦-~">番茄开花啦 ~</a></li><li><a href="../../../../Personal/Blog/2022/种下了一些瓜果蔬菜" data-for="Personal/Blog/2022/种下了一些瓜果蔬菜">种下了一些瓜果蔬菜</a></li><li><a href="../../../../Personal/Blog/2022/罪恶应该被遗传么" data-for="Personal/Blog/2022/罪恶应该被遗传么">罪恶应该被遗传么?</a></li><li><a href="../../../../Personal/Blog/2022/自律的痛苦······" data-for="Personal/Blog/2022/自律的痛苦······">自律的痛苦······</a></li><li><a href="../../../../Personal/Blog/2022/论成年人的睡眠" data-for="Personal/Blog/2022/论成年人的睡眠">论成年人的睡眠</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」">谈谈我的「数字文具盒」</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---NextCloud" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---NextCloud">谈谈我的「数字文具盒」 - NextCloud</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---Obsidian" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---Obsidian">谈谈我的「数字文具盒」 - Obsidian</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---心得体会" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---心得体会">谈谈我的「数字文具盒」 - 心得体会</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---数字基建" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---数字基建">谈谈我的「数字文具盒」 - 数字基建</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---生产力工具(上)" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---生产力工具(上)">谈谈我的「数字文具盒」 - 生产力工具(上)</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---生产力工具(下)" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---生产力工具(下)">谈谈我的「数字文具盒」 - 生产力工具(下)</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---番外篇" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---番外篇">谈谈我的「数字文具盒」 - 番外篇</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---运行平台" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---运行平台">谈谈我的「数字文具盒」 - 运行平台</a></li><li><a href="../../../../Personal/Blog/2022/这个周末" data-for="Personal/Blog/2022/这个周末">这个周末</a></li><li><a href="../../../../Personal/Blog/2022/通货膨胀的猪" data-for="Personal/Blog/2022/通货膨胀的猪">通货膨胀的猪</a></li><li><a href="../../../../Personal/Blog/2022/闭门锁网" data-for="Personal/Blog/2022/闭门锁网">闭门锁网</a></li><li><a href="../../../../Personal/Blog/2022/非黑即白" data-for="Personal/Blog/2022/非黑即白">非黑即白</a></li><li><a href="../../../../Personal/Blog/2022/首页加载速度优化方案" data-for="Personal/Blog/2022/首页加载速度优化方案">首页加载速度优化方案</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2023"><button class="folder-button"><span class="folder-title">2023</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2023"><li><a href="../../../../Personal/Blog/2023/2023-年度微信读书报告" data-for="Personal/Blog/2023/2023-年度微信读书报告">2023 年度微信读书报告</a></li><li><a href="../../../../Personal/Blog/2023/Docusaurus-搭建" data-for="Personal/Blog/2023/Docusaurus-搭建">Docusaurus 搭建</a></li><li><a href="../../../../Personal/Blog/2023/Obsidian-使用-Templater-插件的个性化脚本" data-for="Personal/Blog/2023/Obsidian-使用-Templater-插件的个性化脚本">Obsidian 使用 Templater 插件的个性化脚本</a></li><li><a href="../../../../Personal/Blog/2023/YubiKey-漂流记" data-for="Personal/Blog/2023/YubiKey-漂流记">YubiKey 历险记</a></li><li><a href="../../../../Personal/Blog/2023/不要把幸福建立在别人的痛苦之上" data-for="Personal/Blog/2023/不要把幸福建立在别人的痛苦之上">不要把幸福建立在别人的痛苦之上</a></li><li><a href="../../../../Personal/Blog/2023/为什么不推开那扇门?" data-for="Personal/Blog/2023/为什么不推开那扇门?">为什么不推开那扇门?</a></li><li><a href="../../../../Personal/Blog/2023/你愿意嫁给自己么?" data-for="Personal/Blog/2023/你愿意嫁给自己么?">你愿意嫁给自己么</a></li><li><a href="../../../../Personal/Blog/2023/最近半年的生活" data-for="Personal/Blog/2023/最近半年的生活">最近半年的生活</a></li><li><a href="../../../../Personal/Blog/2023/写博客的正确姿势" data-for="Personal/Blog/2023/写博客的正确姿势">写博客的正确姿势</a></li><li><a href="../../../../Personal/Blog/2023/唯有热爱可抵岁月漫长" data-for="Personal/Blog/2023/唯有热爱可抵岁月漫长">唯有热爱、可抵岁月漫长</a></li><li><a href="../../../../Personal/Blog/2023/回首-2022-展望-2023" data-for="Personal/Blog/2023/回首-2022-展望-2023">回首 2022 展望 2023</a></li><li><a href="../../../../Personal/Blog/2023/大学回忆录" data-for="Personal/Blog/2023/大学回忆录">大学回忆录</a></li><li><a href="../../../../Personal/Blog/2023/如何不写错别字!" data-for="Personal/Blog/2023/如何不写错别字!">如何不写错别字!</a></li><li><a href="../../../../Personal/Blog/2023/如何拍好一张照片" data-for="Personal/Blog/2023/如何拍好一张照片">如何拍好一张照片</a></li><li><a href="../../../../Personal/Blog/2023/家里的三块地" data-for="Personal/Blog/2023/家里的三块地">家里的三块地</a></li><li><a href="../../../../Personal/Blog/2023/岁月是把猪饲料,把我喂的嘎嘎胖" data-for="Personal/Blog/2023/岁月是把猪饲料,把我喂的嘎嘎胖">岁月是把猪饲料,把我喂的嘎嘎胖</a></li><li><a href="../../../../Personal/Blog/2023/拾月游记" data-for="Personal/Blog/2023/拾月游记">拾月游记</a></li><li><a href="../../../../Personal/Blog/2023/揭晓你的博客一年之最,尽在-EndOfYear" data-for="Personal/Blog/2023/揭晓你的博客一年之最,尽在-EndOfYear">揭晓你的博客一年之最,尽在 EndOfYear</a></li><li><a href="../../../../Personal/Blog/2023/早起、阅读、写作、运动、冥想" data-for="Personal/Blog/2023/早起、阅读、写作、运动、冥想">早起、冥想、阅读、写作、运动</a></li><li><a href="../../../../Personal/Blog/2023/浅尝-Gitea-的-Actions" data-for="Personal/Blog/2023/浅尝-Gitea-的-Actions">浅尝 Gitea 的 Actions</a></li><li><a href="../../../../Personal/Blog/2023/独立生活能力清单" data-for="Personal/Blog/2023/独立生活能力清单">独立生活能力清单</a></li><li><a href="../../../../Personal/Blog/2023/电脑坏了,我换了-Ubuntu" data-for="Personal/Blog/2023/电脑坏了,我换了-Ubuntu">电脑坏了,我换了 Ubuntu</a></li><li><a href="../../../../Personal/Blog/2023/看-V2Ex-的-ChatGPT-老哥浅谈办公室政治" data-for="Personal/Blog/2023/看-V2Ex-的-ChatGPT-老哥浅谈办公室政治">看 V2Ex 的 ChatGPT 老哥浅谈办公室政治</a></li><li><a href="../../../../Personal/Blog/2023/破万卷书,行万里路!" data-for="Personal/Blog/2023/破万卷书,行万里路!">破万卷书,行万里路!</a></li><li><a href="../../../../Personal/Blog/2023/谈谈我的「数字文具盒」---个人工作流" data-for="Personal/Blog/2023/谈谈我的「数字文具盒」---个人工作流">谈谈我的「数字文具盒」 - 个人工作流</a></li><li><a href="../../../../Personal/Blog/2023/长安三万里" data-for="Personal/Blog/2023/长安三万里">长安三万里</a></li><li><a href="../../../../Personal/Blog/2023/黄山归来不看岳" data-for="Personal/Blog/2023/黄山归来不看岳">黄山归来不看岳</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2024"><button class="folder-button"><span class="folder-title">2024</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2024"><li><a href="../../../../Personal/Blog/2024/「救赎之路」更名「向阳而生」" data-for="Personal/Blog/2024/「救赎之路」更名「向阳而生」">「救赎之路」更名「向阳而生」</a></li><li><a href="../../../../Personal/Blog/2024/回顾-2023" data-for="Personal/Blog/2024/回顾-2023">2023 年终总结</a></li><li><a href="../../../../Personal/Blog/2024/2023-年终问答" data-for="Personal/Blog/2024/2023-年终问答">2023 年终问答</a></li><li><a href="../../../../Personal/Blog/2024/CityWalk——公车挑战" data-for="Personal/Blog/2024/CityWalk——公车挑战">CityWalk——公车挑战探索未知的城市</a></li><li><a href="../../../../Personal/Blog/2024/Python-项目终极部署解决方案" data-for="Personal/Blog/2024/Python-项目终极部署解决方案">Python 项目终极部署解决方案</a></li><li><a href="../../../../Personal/Blog/2024/一命二运三风水" data-for="Personal/Blog/2024/一命二运三风水">一命二运三风水</a></li><li><a href="../../../../Personal/Blog/2024/乌兰哈达火山银河之旅" data-for="Personal/Blog/2024/乌兰哈达火山银河之旅">乌兰哈达火山银河之旅</a></li><li><a href="../../../../Personal/Blog/2024/冰箱,让你我错过了多少新鲜的生活?" data-for="Personal/Blog/2024/冰箱,让你我错过了多少新鲜的生活?">冰箱,让你我错过了多少新鲜的生活?</a></li><li><a href="../../../../Personal/Blog/2024/回读者信──240816" data-for="Personal/Blog/2024/回读者信──240816">回读者信──240816</a></li><li><a href="../../../../Personal/Blog/2024/夜泊西湖听雨声" data-for="Personal/Blog/2024/夜泊西湖听雨声">夜泊西湖听雨声</a></li><li><a href="../../../../Personal/Blog/2024/如何开好一场会?" data-for="Personal/Blog/2024/如何开好一场会?">如何开好一场会?</a></li><li><a href="../../../../Personal/Blog/2024/如何打破信息茧房?" data-for="Personal/Blog/2024/如何打破信息茧房?">如何打破信息茧房?</a></li><li><a href="../../../../Personal/Blog/2024/富人的红灯与穷人的绿灯" data-for="Personal/Blog/2024/富人的红灯与穷人的绿灯">富人的红灯与穷人的绿灯</a></li><li><a href="../../../../Personal/Blog/2024/师从-ChatGPT" data-for="Personal/Blog/2024/师从-ChatGPT">师从 ChatGPT</a></li><li><a href="../../../../Personal/Blog/2024/我又从-Ubunut-换成了-Fedora" data-for="Personal/Blog/2024/我又从-Ubunut-换成了-Fedora">我又从 Ubunut 换成了 Fedora</a></li><li><a href="../../../../Personal/Blog/2024/我的一天" data-for="Personal/Blog/2024/我的一天">我的一天</a></li><li><a href="../../../../Personal/Blog/2024/打工三年记" data-for="Personal/Blog/2024/打工三年记">打工三年记</a></li><li><a href="../../../../Personal/Blog/2024/新奇的-HR-经历" data-for="Personal/Blog/2024/新奇的-HR-经历">新奇的 HR 经历</a></li><li><a href="../../../../Personal/Blog/2024/穷则独善其身,达则兼济天下" data-for="Personal/Blog/2024/穷则独善其身,达则兼济天下">穷则独善其身,达则兼济天下</a></li><li><a href="../../../../Personal/Blog/2024/继续开荒我那一亩三分地" data-for="Personal/Blog/2024/继续开荒我那一亩三分地">继续开荒我那一亩三分地</a></li><li><a href="../../../../Personal/Blog/2024/記伍月" data-for="Personal/Blog/2024/記伍月">記伍月</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book"><button class="folder-button"><span class="folder-title">Book</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/个人成长"><button class="folder-button"><span class="folder-title">个人成长</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/个人成长"><li><a href="../../../../Personal/Book/个人成长/习惯的力量(新版)" data-for="Personal/Book/个人成长/习惯的力量(新版)">习惯的力量(新版)</a></li><li><a href="../../../../Personal/Book/个人成长/以极简的方式去生活" data-for="Personal/Book/个人成长/以极简的方式去生活">以极简的方式去生活</a></li><li><a href="../../../../Personal/Book/个人成长/写出我心:普通人如何通过写作表达自己" data-for="Personal/Book/个人成长/写出我心:普通人如何通过写作表达自己">写出我心:普通人如何通过写作表达自己</a></li><li><a href="../../../../Personal/Book/个人成长/刻意练习:如何从新手到大师" data-for="Personal/Book/个人成长/刻意练习:如何从新手到大师">刻意练习:如何从新手到大师</a></li><li><a href="../../../../Personal/Book/个人成长/十分钟冥想" data-for="Personal/Book/个人成长/十分钟冥想">十分钟冥想</a></li><li><a href="../../../../Personal/Book/个人成长/即兴表达" data-for="Personal/Book/个人成长/即兴表达">即兴表达</a></li><li><a href="../../../../Personal/Book/个人成长/学习之道" data-for="Personal/Book/个人成长/学习之道">学习之道</a></li><li><a href="../../../../Personal/Book/个人成长/学会写作:自我进阶的高效方法" data-for="Personal/Book/个人成长/学会写作:自我进阶的高效方法">学会写作:自我进阶的高效方法</a></li><li><a href="../../../../Personal/Book/个人成长/底层逻辑" data-for="Personal/Book/个人成长/底层逻辑">底层逻辑</a></li><li><a href="../../../../Personal/Book/个人成长/底层逻辑:看清这个世界的底牌" data-for="Personal/Book/个人成长/底层逻辑:看清这个世界的底牌">底层逻辑:看清这个世界的底牌</a></li><li><a href="../../../../Personal/Book/个人成长/当下的力量(白金版)" data-for="Personal/Book/个人成长/当下的力量(白金版)">当下的力量(白金版)</a></li><li><a href="../../../../Personal/Book/个人成长/我的第一本人生规划手册" data-for="Personal/Book/个人成长/我的第一本人生规划手册">我的第一本人生规划手册</a></li><li><a href="../../../../Personal/Book/个人成长/超级面试官:快速提升识人技能的面试实战手册" data-for="Personal/Book/个人成长/超级面试官:快速提升识人技能的面试实战手册">超级面试官:快速提升识人技能的面试实战手册</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/医学健康"><button class="folder-button"><span class="folder-title">医学健康</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/医学健康"><li><a href="../../../../Personal/Book/医学健康/你是你吃出来的套装共2册" data-for="Personal/Book/医学健康/你是你吃出来的套装共2册">你是你吃出来的套装共2册</a></li><li><a href="../../../../Personal/Book/医学健康/小小药箱护健康教您用好家庭小药箱" data-for="Personal/Book/医学健康/小小药箱护健康教您用好家庭小药箱">小小药箱护健康教您用好家庭小药箱</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/历史"><button class="folder-button"><span class="folder-title">历史</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/历史"><li><a href="../../../../Personal/Book/历史/信息简史" data-for="Personal/Book/历史/信息简史">信息简史</a></li><li><a href="../../../../Personal/Book/历史/这里是中国2" data-for="Personal/Book/历史/这里是中国2">这里是中国2</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/哲学宗教"><button class="folder-button"><span class="folder-title">哲学宗教</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/哲学宗教"><li><a href="../../../../Personal/Book/哲学宗教/半小时漫画中国哲学史套装全2册" data-for="Personal/Book/哲学宗教/半小时漫画中国哲学史套装全2册">半小时漫画中国哲学史套装全2册</a></li><li><a href="../../../../Personal/Book/哲学宗教/第一性原理" data-for="Personal/Book/哲学宗教/第一性原理">第一性原理</a></li><li><a href="../../../../Personal/Book/哲学宗教/结构化思维" data-for="Personal/Book/哲学宗教/结构化思维">结构化思维</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/心理"><button class="folder-button"><span class="folder-title">心理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/心理"><li><a href="../../../../Personal/Book/心理/乌合之众(果麦经典)" data-for="Personal/Book/心理/乌合之众(果麦经典)">乌合之众(果麦经典)</a></li><li><a href="../../../../Personal/Book/心理/十分钟冥想" data-for="Personal/Book/心理/十分钟冥想">十分钟冥想</a></li><li><a href="../../../../Personal/Book/心理/认知觉醒:开启自我改变的原动力" data-for="Personal/Book/心理/认知觉醒:开启自我改变的原动力">认知觉醒:开启自我改变的原动力</a></li><li><a href="../../../../Personal/Book/心理/认知驱动:做成一件对他人很有用的事" data-for="Personal/Book/心理/认知驱动:做成一件对他人很有用的事">认知驱动:做成一件对他人很有用的事</a></li><li><a href="../../../../Personal/Book/心理/谈性说爱写给女性的性心理24讲" data-for="Personal/Book/心理/谈性说爱写给女性的性心理24讲">谈性说爱写给女性的性心理24讲</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/政治军事"><button class="folder-button"><span class="folder-title">政治军事</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/政治军事"><li><a href="../../../../Personal/Book/政治军事/实践论" data-for="Personal/Book/政治军事/实践论">实践论</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/教育学习"><button class="folder-button"><span class="folder-title">教育学习</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/教育学习"><li><a href="../../../../Personal/Book/教育学习/如何阅读一本书" data-for="Personal/Book/教育学习/如何阅读一本书">如何阅读一本书</a></li><li><a href="../../../../Personal/Book/教育学习/赖世雄的英语学习法" data-for="Personal/Book/教育学习/赖世雄的英语学习法">赖世雄的英语学习法</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/文学"><button class="folder-button"><span class="folder-title">文学</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/文学"><li><a href="../../../../Personal/Book/文学/凤凰项目一个IT运维的传奇故事修订版" data-for="Personal/Book/文学/凤凰项目一个IT运维的传奇故事修订版">凤凰项目一个IT运维的传奇故事修订版</a></li><li><a href="../../../../Personal/Book/文学/老舍谈写作" data-for="Personal/Book/文学/老舍谈写作">老舍谈写作</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/生活百科"><button class="folder-button"><span class="folder-title">生活百科</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/生活百科"><li><a href="../../../../Personal/Book/生活百科/聂卫平围棋教程从15级到10级" data-for="Personal/Book/生活百科/聂卫平围棋教程从15级到10级">聂卫平围棋教程从15级到10级</a></li><li><a href="../../../../Personal/Book/生活百科/聂卫平围棋教程从入门到15级" data-for="Personal/Book/生活百科/聂卫平围棋教程从入门到15级">聂卫平围棋教程从入门到15级</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/社会文化"><button class="folder-button"><span class="folder-title">社会文化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/社会文化"><li><a href="../../../../Personal/Book/社会文化/人体简史" data-for="Personal/Book/社会文化/人体简史">人体简史</a></li><li><a href="../../../../Personal/Book/社会文化/你不可不知的法律常识" data-for="Personal/Book/社会文化/你不可不知的法律常识">你不可不知的法律常识</a></li><li><a href="../../../../Personal/Book/社会文化/半小时漫画《论语》" data-for="Personal/Book/社会文化/半小时漫画《论语》">半小时漫画《论语》</a></li><li><a href="../../../../Personal/Book/社会文化/民法典与百姓生活100问" data-for="Personal/Book/社会文化/民法典与百姓生活100问">民法典与百姓生活100问</a></li><li><a href="../../../../Personal/Book/社会文化/这里是中国" data-for="Personal/Book/社会文化/这里是中国">这里是中国</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/科学技术"><button class="folder-button"><span class="folder-title">科学技术</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/科学技术"><li><a href="../../../../Personal/Book/科学技术/贝尔实验室与美国革新大时代" data-for="Personal/Book/科学技术/贝尔实验室与美国革新大时代">贝尔实验室与美国革新大时代</a></li><li><a href="../../../../Personal/Book/科学技术/高性能Linux服务器运维实战shell编程、监控告警、性能优化与实战案例" data-for="Personal/Book/科学技术/高性能Linux服务器运维实战shell编程、监控告警、性能优化与实战案例">高性能Linux服务器运维实战shell编程、监控告警、性能优化与实战案例</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/经济理财"><button class="folder-button"><span class="folder-title">经济理财</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/经济理财"><li><a href="../../../../Personal/Book/经济理财/人力资源管理从入门到精通" data-for="Personal/Book/经济理财/人力资源管理从入门到精通">人力资源管理从入门到精通</a></li><li><a href="../../../../Personal/Book/经济理财/十分钟冥想" data-for="Personal/Book/经济理财/十分钟冥想">十分钟冥想</a></li><li><a href="../../../../Personal/Book/经济理财/半小时漫画股票实战法" data-for="Personal/Book/经济理财/半小时漫画股票实战法">半小时漫画股票实战法</a></li><li><a href="../../../../Personal/Book/经济理财/小米创业思考" data-for="Personal/Book/经济理财/小米创业思考">小米创业思考</a></li><li><a href="../../../../Personal/Book/经济理财/底层逻辑:半秒钟看透问题本质" data-for="Personal/Book/经济理财/底层逻辑:半秒钟看透问题本质">底层逻辑:半秒钟看透问题本质</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/艺术"><button class="folder-button"><span class="folder-title">艺术</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/艺术"><li><a href="../../../../Personal/Book/艺术/江湖丛谈(注音注释插图本)" data-for="Personal/Book/艺术/江湖丛谈(注音注释插图本)">江湖丛谈(注音注释插图本)</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/计算机"><button class="folder-button"><span class="folder-title">计算机</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/计算机"><li><a href="../../../../Personal/Book/计算机/Flask-Web开发基于Python的Web应用开发实战第2版" data-for="Personal/Book/计算机/Flask-Web开发基于Python的Web应用开发实战第2版">Flask Web开发基于Python的Web应用开发实战第2版</a></li><li><a href="../../../../Personal/Book/计算机/IT基础架构系统运维实践" data-for="Personal/Book/计算机/IT基础架构系统运维实践">IT基础架构系统运维实践</a></li><li><a href="../../../../Personal/Book/计算机/Linux命令行与shell脚本编程大全第4版" data-for="Personal/Book/计算机/Linux命令行与shell脚本编程大全第4版">Linux命令行与shell脚本编程大全第4版</a></li><li><a href="../../../../Personal/Book/计算机/Linux是怎样工作的" data-for="Personal/Book/计算机/Linux是怎样工作的">Linux是怎样工作的</a></li><li><a href="../../../../Personal/Book/计算机/Python工匠案例、技巧与工程实践" data-for="Personal/Book/计算机/Python工匠案例、技巧与工程实践">Python工匠案例、技巧与工程实践</a></li><li><a href="../../../../Personal/Book/计算机/Python编程从入门到实践第2版" data-for="Personal/Book/计算机/Python编程从入门到实践第2版">Python编程从入门到实践第2版</a></li><li><a href="../../../../Personal/Book/计算机/Python编程轻松进阶" data-for="Personal/Book/计算机/Python编程轻松进阶">Python编程轻松进阶</a></li><li><a href="../../../../Personal/Book/计算机/SQL必知必会第5版" data-for="Personal/Book/计算机/SQL必知必会第5版">SQL必知必会第5版</a></li><li><a href="../../../../Personal/Book/计算机/SREGoogle运维解密" data-for="Personal/Book/计算机/SREGoogle运维解密">SREGoogle运维解密</a></li><li><a href="../../../../Personal/Book/计算机/UNIX传奇历史与回忆" data-for="Personal/Book/计算机/UNIX传奇历史与回忆">UNIX传奇历史与回忆</a></li><li><a href="../../../../Personal/Book/计算机/VMware-vSphere-7.0云平台运维与管理第2版" data-for="Personal/Book/计算机/VMware-vSphere-7.0云平台运维与管理第2版">VMware vSphere 7.0云平台运维与管理第2版</a></li><li><a href="../../../../Personal/Book/计算机/人人都懂设计模式从生活中领悟设计模式Python实现" data-for="Personal/Book/计算机/人人都懂设计模式从生活中领悟设计模式Python实现">人人都懂设计模式从生活中领悟设计模式Python实现</a></li><li><a href="../../../../Personal/Book/计算机/从0到1HTML+CSS快速上手" data-for="Personal/Book/计算机/从0到1HTML+CSS快速上手">从0到1HTML+CSS快速上手</a></li><li><a href="../../../../Personal/Book/计算机/从0到1HTML5+CSS3修炼之道" data-for="Personal/Book/计算机/从0到1HTML5+CSS3修炼之道">从0到1HTML5+CSS3修炼之道</a></li><li><a href="../../../../Personal/Book/计算机/从0到1JavaScript-快速上手" data-for="Personal/Book/计算机/从0到1JavaScript-快速上手">从0到1JavaScript 快速上手</a></li><li><a href="../../../../Personal/Book/计算机/从0到1jQuery快速上手" data-for="Personal/Book/计算机/从0到1jQuery快速上手">从0到1jQuery快速上手</a></li><li><a href="../../../../Personal/Book/计算机/明解Python" data-for="Personal/Book/计算机/明解Python">明解Python</a></li><li><a href="../../../../Personal/Book/计算机/每天5分钟玩转Docker容器技术" data-for="Personal/Book/计算机/每天5分钟玩转Docker容器技术">每天5分钟玩转Docker容器技术</a></li><li><a href="../../../../Personal/Book/计算机/流畅的Python" data-for="Personal/Book/计算机/流畅的Python">流畅的Python</a></li><li><a href="../../../../Personal/Book/计算机/硅谷之火个人计算机的诞生与衰落第3版" data-for="Personal/Book/计算机/硅谷之火个人计算机的诞生与衰落第3版">硅谷之火个人计算机的诞生与衰落第3版</a></li><li><a href="../../../../Personal/Book/计算机/秒懂设计模式" data-for="Personal/Book/计算机/秒懂设计模式">秒懂设计模式</a></li><li><a href="../../../../Personal/Book/计算机/程序员的README" data-for="Personal/Book/计算机/程序员的README">程序员的README</a></li><li><a href="../../../../Personal/Book/计算机/精通Python设计模式第2版" data-for="Personal/Book/计算机/精通Python设计模式第2版">精通Python设计模式第2版</a></li><li><a href="../../../../Personal/Book/计算机/网络安全等级保护2.0:定级、测评、实施与运维" data-for="Personal/Book/计算机/网络安全等级保护2.0:定级、测评、实施与运维">网络安全等级保护2.0:定级、测评、实施与运维</a></li><li><a href="../../../../Personal/Book/计算机/网络工程师红宝书:思科华为华三实战案例荟萃" data-for="Personal/Book/计算机/网络工程师红宝书:思科华为华三实战案例荟萃">网络工程师红宝书:思科华为华三实战案例荟萃</a></li><li><a href="../../../../Personal/Book/计算机/网络是怎样连接的" data-for="Personal/Book/计算机/网络是怎样连接的">网络是怎样连接的</a></li><li><a href="../../../../Personal/Book/计算机/网络运维亲历记-(网络运维纪实文学)" data-for="Personal/Book/计算机/网络运维亲历记-(网络运维纪实文学)">网络运维亲历记 (网络运维纪实文学)</a></li><li><a href="../../../../Personal/Book/计算机/虚拟化工程师运维实战VMware服务器虚拟化+Citrix桌面应用虚拟化+Veeam备份+Zabbix监控" data-for="Personal/Book/计算机/虚拟化工程师运维实战VMware服务器虚拟化+Citrix桌面应用虚拟化+Veeam备份+Zabbix监控">虚拟化工程师运维实战VMware服务器虚拟化+Citrix桌面/应用虚拟化+Veeam备份+Zabbix监控</a></li><li><a href="../../../../Personal/Book/计算机/计算机:一部历史" data-for="Personal/Book/计算机/计算机:一部历史">计算机:一部历史</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal"><button class="folder-button"><span class="folder-title">Journal</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022"><button class="folder-button"><span class="folder-title">2022</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W34"><button class="folder-button"><span class="folder-title">W34</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W34"><li><a href="../../../../Personal/Journal/2022/W34/2022-08-24" data-for="Personal/Journal/2022/W34/2022-08-24">2022-08-24</a></li><li><a href="../../../../Personal/Journal/2022/W34/2022-08-25" data-for="Personal/Journal/2022/W34/2022-08-25">2022-08-25</a></li><li><a href="../../../../Personal/Journal/2022/W34/2022-08-26" data-for="Personal/Journal/2022/W34/2022-08-26">2022-08-26</a></li><li><a href="../../../../Personal/Journal/2022/W34/2022-08-27" data-for="Personal/Journal/2022/W34/2022-08-27">2022-08-27</a></li><li><a href="../../../../Personal/Journal/2022/W34/2022-08-28" data-for="Personal/Journal/2022/W34/2022-08-28">2022-08-28</a></li><li><a href="../../../../Personal/Journal/2022/W34/2022-W34" data-for="Personal/Journal/2022/W34/2022-W34">2022-W34</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W35"><button class="folder-button"><span class="folder-title">W35</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W35"><li><a href="../../../../Personal/Journal/2022/W35/2022-08-29" data-for="Personal/Journal/2022/W35/2022-08-29">2022-08-29</a></li><li><a href="../../../../Personal/Journal/2022/W35/2022-08-30" data-for="Personal/Journal/2022/W35/2022-08-30">2022-08-30</a></li><li><a href="../../../../Personal/Journal/2022/W35/2022-08-31" data-for="Personal/Journal/2022/W35/2022-08-31">2022-08-31</a></li><li><a href="../../../../Personal/Journal/2022/W35/2022-09-01" data-for="Personal/Journal/2022/W35/2022-09-01">2022-09-01</a></li><li><a href="../../../../Personal/Journal/2022/W35/2022-W35" data-for="Personal/Journal/2022/W35/2022-W35">2022-W35</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W36"><button class="folder-button"><span class="folder-title">W36</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W36"><li><a href="../../../../Personal/Journal/2022/W36/2022-09-05" data-for="Personal/Journal/2022/W36/2022-09-05">2022-09-05</a></li><li><a href="../../../../Personal/Journal/2022/W36/2022-09-06" data-for="Personal/Journal/2022/W36/2022-09-06">2022-09-06</a></li><li><a href="../../../../Personal/Journal/2022/W36/2022-09-07" data-for="Personal/Journal/2022/W36/2022-09-07">2022-09-07</a></li><li><a href="../../../../Personal/Journal/2022/W36/2022-09-08" data-for="Personal/Journal/2022/W36/2022-09-08">2022-09-08</a></li><li><a href="../../../../Personal/Journal/2022/W36/2022-W36" data-for="Personal/Journal/2022/W36/2022-W36">2022-W36</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W37"><button class="folder-button"><span class="folder-title">W37</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W37"><li><a href="../../../../Personal/Journal/2022/W37/2022-09-12" data-for="Personal/Journal/2022/W37/2022-09-12">2022-09-12</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-13" data-for="Personal/Journal/2022/W37/2022-09-13">2022-09-13</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-14" data-for="Personal/Journal/2022/W37/2022-09-14">2022-09-14</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-15" data-for="Personal/Journal/2022/W37/2022-09-15">2022-09-15</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-16" data-for="Personal/Journal/2022/W37/2022-09-16">2022-09-16</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-17" data-for="Personal/Journal/2022/W37/2022-09-17">2022-09-17</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-18" data-for="Personal/Journal/2022/W37/2022-09-18">2022-09-18</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-W37" data-for="Personal/Journal/2022/W37/2022-W37">2022-W37</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W38"><button class="folder-button"><span class="folder-title">W38</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W38"><li><a href="../../../../Personal/Journal/2022/W38/2022-09-19" data-for="Personal/Journal/2022/W38/2022-09-19">2022-09-19</a></li><li><a href="../../../../Personal/Journal/2022/W38/2022-09-20" data-for="Personal/Journal/2022/W38/2022-09-20">2022-09-20</a></li><li><a href="../../../../Personal/Journal/2022/W38/2022-09-21" data-for="Personal/Journal/2022/W38/2022-09-21">2022-09-21</a></li><li><a href="../../../../Personal/Journal/2022/W38/2022-09-22" data-for="Personal/Journal/2022/W38/2022-09-22">2022-09-22</a></li><li><a href="../../../../Personal/Journal/2022/W38/2022-W38" data-for="Personal/Journal/2022/W38/2022-W38">2022-W38</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W39"><button class="folder-button"><span class="folder-title">W39</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W39"><li><a href="../../../../Personal/Journal/2022/W39/2022-09-28" data-for="Personal/Journal/2022/W39/2022-09-28">2022-09-28</a></li><li><a href="../../../../Personal/Journal/2022/W39/2022-09-29" data-for="Personal/Journal/2022/W39/2022-09-29">2022-09-29</a></li><li><a href="../../../../Personal/Journal/2022/W39/2022-W39" data-for="Personal/Journal/2022/W39/2022-W39">2022-W39</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W41"><button class="folder-button"><span class="folder-title">W41</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W41"><li><a href="../../../../Personal/Journal/2022/W41/2022-10-10" data-for="Personal/Journal/2022/W41/2022-10-10">2022-10-10</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-10-11" data-for="Personal/Journal/2022/W41/2022-10-11">2022-10-11</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-10-12" data-for="Personal/Journal/2022/W41/2022-10-12">2022-10-12</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-10-13" data-for="Personal/Journal/2022/W41/2022-10-13">2022-10-13</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-10-14" data-for="Personal/Journal/2022/W41/2022-10-14">2022-10-14</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-10-16" data-for="Personal/Journal/2022/W41/2022-10-16">2022-10-16</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-W41" data-for="Personal/Journal/2022/W41/2022-W41">2022-W41</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W42"><button class="folder-button"><span class="folder-title">W42</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W42"><li><a href="../../../../Personal/Journal/2022/W42/2022-10-17" data-for="Personal/Journal/2022/W42/2022-10-17">2022-10-17</a></li><li><a href="../../../../Personal/Journal/2022/W42/2022-10-18" data-for="Personal/Journal/2022/W42/2022-10-18">2022-10-18</a></li><li><a href="../../../../Personal/Journal/2022/W42/2022-10-19" data-for="Personal/Journal/2022/W42/2022-10-19">2022-10-19</a></li><li><a href="../../../../Personal/Journal/2022/W42/2022-10-21" data-for="Personal/Journal/2022/W42/2022-10-21">2022-10-21</a></li><li><a href="../../../../Personal/Journal/2022/W42/2022-W42" data-for="Personal/Journal/2022/W42/2022-W42">2022-W42</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W43"><button class="folder-button"><span class="folder-title">W43</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W43"><li><a href="../../../../Personal/Journal/2022/W43/2022-10-24" data-for="Personal/Journal/2022/W43/2022-10-24">2022-10-24</a></li><li><a href="../../../../Personal/Journal/2022/W43/2022-10-26" data-for="Personal/Journal/2022/W43/2022-10-26">2022-10-26</a></li><li><a href="../../../../Personal/Journal/2022/W43/2022-W43" data-for="Personal/Journal/2022/W43/2022-W43">2022-W43</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W44"><button class="folder-button"><span class="folder-title">W44</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W44"><li><a href="../../../../Personal/Journal/2022/W44/2022-11-02" data-for="Personal/Journal/2022/W44/2022-11-02">2022-11-02</a></li><li><a href="../../../../Personal/Journal/2022/W44/2022-W44" data-for="Personal/Journal/2022/W44/2022-W44">2022-W44</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W45"><button class="folder-button"><span class="folder-title">W45</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W45"><li><a href="../../../../Personal/Journal/2022/W45/2022-11-10" data-for="Personal/Journal/2022/W45/2022-11-10">2022-11-10</a></li><li><a href="../../../../Personal/Journal/2022/W45/2022-11-11" data-for="Personal/Journal/2022/W45/2022-11-11">2022-11-11</a></li><li><a href="../../../../Personal/Journal/2022/W45/2022-11-12" data-for="Personal/Journal/2022/W45/2022-11-12">2022-11-12</a></li><li><a href="../../../../Personal/Journal/2022/W45/2022-11-13" data-for="Personal/Journal/2022/W45/2022-11-13">2022-11-13</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W46"><button class="folder-button"><span class="folder-title">W46</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W46"><li><a href="../../../../Personal/Journal/2022/W46/2022-11-18" data-for="Personal/Journal/2022/W46/2022-11-18">2022-11-18</a></li><li><a href="../../../../Personal/Journal/2022/W46/2022-11-20" data-for="Personal/Journal/2022/W46/2022-11-20">2022-11-20</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W47"><button class="folder-button"><span class="folder-title">W47</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W47"><li><a href="../../../../Personal/Journal/2022/W47/2022-11-21" data-for="Personal/Journal/2022/W47/2022-11-21">2022-11-21</a></li><li><a href="../../../../Personal/Journal/2022/W47/2022-11-22" data-for="Personal/Journal/2022/W47/2022-11-22">2022-11-22</a></li><li><a href="../../../../Personal/Journal/2022/W47/2022-W47" data-for="Personal/Journal/2022/W47/2022-W47">2022-W47</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W48"><button class="folder-button"><span class="folder-title">W48</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W48"><li><a href="../../../../Personal/Journal/2022/W48/2022-11-28" data-for="Personal/Journal/2022/W48/2022-11-28">2022-11-28</a></li><li><a href="../../../../Personal/Journal/2022/W48/2022-11-29" data-for="Personal/Journal/2022/W48/2022-11-29">2022-11-29</a></li><li><a href="../../../../Personal/Journal/2022/W48/2022-12-01" data-for="Personal/Journal/2022/W48/2022-12-01">2022-12-01</a></li><li><a href="../../../../Personal/Journal/2022/W48/2022-12-04" data-for="Personal/Journal/2022/W48/2022-12-04">2022-12-04</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W49"><button class="folder-button"><span class="folder-title">W49</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W49"><li><a href="../../../../Personal/Journal/2022/W49/2022-12-06" data-for="Personal/Journal/2022/W49/2022-12-06">2022-12-06</a></li><li><a href="../../../../Personal/Journal/2022/W49/2022-W49" data-for="Personal/Journal/2022/W49/2022-W49">2022-W49</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W50"><button class="folder-button"><span class="folder-title">W50</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W50"><li><a href="../../../../Personal/Journal/2022/W50/2022-12-12" data-for="Personal/Journal/2022/W50/2022-12-12">2022-12-12</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023"><button class="folder-button"><span class="folder-title">2023</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W2"><button class="folder-button"><span class="folder-title">W2</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W2"><li><a href="../../../../Personal/Journal/2023/W2/2023-W2" data-for="Personal/Journal/2023/W2/2023-W2">2023-W2</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W3"><button class="folder-button"><span class="folder-title">W3</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W3"><li><a href="../../../../Personal/Journal/2023/W3/2023-01-16" data-for="Personal/Journal/2023/W3/2023-01-16">2023-01-16</a></li><li><a href="../../../../Personal/Journal/2023/W3/2023-01-18" data-for="Personal/Journal/2023/W3/2023-01-18">2023-01-18</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W5"><button class="folder-button"><span class="folder-title">W5</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W5"><li><a href="../../../../Personal/Journal/2023/W5/2023-W5" data-for="Personal/Journal/2023/W5/2023-W5">2023-W5</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W6"><button class="folder-button"><span class="folder-title">W6</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W6"><li><a href="../../../../Personal/Journal/2023/W6/2023-W6" data-for="Personal/Journal/2023/W6/2023-W6">2023-W6</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W7"><button class="folder-button"><span class="folder-title">W7</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W7"><li><a href="../../../../Personal/Journal/2023/W7/2023-02-14" data-for="Personal/Journal/2023/W7/2023-02-14">2023-02-14</a></li><li><a href="../../../../Personal/Journal/2023/W7/2023-02-15" data-for="Personal/Journal/2023/W7/2023-02-15">2023-02-15</a></li><li><a href="../../../../Personal/Journal/2023/W7/2023-02-16" data-for="Personal/Journal/2023/W7/2023-02-16">2023-02-16</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W8"><button class="folder-button"><span class="folder-title">W8</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W8"><li><a href="../../../../Personal/Journal/2023/W8/2023-02-20" data-for="Personal/Journal/2023/W8/2023-02-20">2023-02-20</a></li><li><a href="../../../../Personal/Journal/2023/W8/2023-02-22" data-for="Personal/Journal/2023/W8/2023-02-22">2023-02-22</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W10"><button class="folder-button"><span class="folder-title">W10</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W10"><li><a href="../../../../Personal/Journal/2023/W10/2023-W10" data-for="Personal/Journal/2023/W10/2023-W10">2023-W10</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W12"><button class="folder-button"><span class="folder-title">W12</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W12"><li><a href="../../../../Personal/Journal/2023/W12/2023-03-20" data-for="Personal/Journal/2023/W12/2023-03-20">2023-03-20</a></li><li><a href="../../../../Personal/Journal/2023/W12/2023-03-21" data-for="Personal/Journal/2023/W12/2023-03-21">2023-03-21</a></li><li><a href="../../../../Personal/Journal/2023/W12/2023-W12" data-for="Personal/Journal/2023/W12/2023-W12">2023-W12</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W14"><button class="folder-button"><span class="folder-title">W14</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W14"><li><a href="../../../../Personal/Journal/2023/W14/2023-04-08" data-for="Personal/Journal/2023/W14/2023-04-08">2023-04-08</a></li><li><a href="../../../../Personal/Journal/2023/W14/2023-W14" data-for="Personal/Journal/2023/W14/2023-W14">2023-W14</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W16"><button class="folder-button"><span class="folder-title">W16</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W16"><li><a href="../../../../Personal/Journal/2023/W16/2023-04-21" data-for="Personal/Journal/2023/W16/2023-04-21">2023-04-21</a></li><li><a href="../../../../Personal/Journal/2023/W16/2023-04-23" data-for="Personal/Journal/2023/W16/2023-04-23">2023-04-23</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W22"><button class="folder-button"><span class="folder-title">W22</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W22"><li><a href="../../../../Personal/Journal/2023/W22/2023-05-31" data-for="Personal/Journal/2023/W22/2023-05-31">2023-05-31</a></li><li><a href="../../../../Personal/Journal/2023/W22/2023-06-01" data-for="Personal/Journal/2023/W22/2023-06-01">2023-06-01</a></li><li><a href="../../../../Personal/Journal/2023/W22/2023-W22" data-for="Personal/Journal/2023/W22/2023-W22">2023-W22</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W23"><button class="folder-button"><span class="folder-title">W23</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W23"><li><a href="../../../../Personal/Journal/2023/W23/2023-06-05" data-for="Personal/Journal/2023/W23/2023-06-05">2023-06-05</a></li><li><a href="../../../../Personal/Journal/2023/W23/2023-06-08" data-for="Personal/Journal/2023/W23/2023-06-08">2023-06-08</a></li><li><a href="../../../../Personal/Journal/2023/W23/2023-W23" data-for="Personal/Journal/2023/W23/2023-W23">2023-W23</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W24"><button class="folder-button"><span class="folder-title">W24</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W24"><li><a href="../../../../Personal/Journal/2023/W24/2023-06-12" data-for="Personal/Journal/2023/W24/2023-06-12">2023-06-12</a></li><li><a href="../../../../Personal/Journal/2023/W24/2023-06-13" data-for="Personal/Journal/2023/W24/2023-06-13">2023-06-13</a></li><li><a href="../../../../Personal/Journal/2023/W24/2023-06-15" data-for="Personal/Journal/2023/W24/2023-06-15">2023-06-15</a></li><li><a href="../../../../Personal/Journal/2023/W24/2023-W24" data-for="Personal/Journal/2023/W24/2023-W24">2023-W24</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W25"><button class="folder-button"><span class="folder-title">W25</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W25"><li><a href="../../../../Personal/Journal/2023/W25/2023-W25" data-for="Personal/Journal/2023/W25/2023-W25">2023-W25</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W26"><button class="folder-button"><span class="folder-title">W26</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W26"><li><a href="../../../../Personal/Journal/2023/W26/2023-06-26" data-for="Personal/Journal/2023/W26/2023-06-26">2023-06-26</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W31"><button class="folder-button"><span class="folder-title">W31</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W31"><li><a href="../../../../Personal/Journal/2023/W31/2023-W31" data-for="Personal/Journal/2023/W31/2023-W31">2023-W31</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W32"><button class="folder-button"><span class="folder-title">W32</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W32"><li><a href="../../../../Personal/Journal/2023/W32/2023-08-07" data-for="Personal/Journal/2023/W32/2023-08-07">2023-08-07</a></li><li><a href="../../../../Personal/Journal/2023/W32/2023-08-08" data-for="Personal/Journal/2023/W32/2023-08-08">2023-08-08</a></li><li><a href="../../../../Personal/Journal/2023/W32/2023-W32" data-for="Personal/Journal/2023/W32/2023-W32">2023-W32</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W33"><button class="folder-button"><span class="folder-title">W33</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W33"><li><a href="../../../../Personal/Journal/2023/W33/2023-W33" data-for="Personal/Journal/2023/W33/2023-W33">2023-W33</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W35"><button class="folder-button"><span class="folder-title">W35</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W35"><li><a href="../../../../Personal/Journal/2023/W35/2023-W35" data-for="Personal/Journal/2023/W35/2023-W35">2023-W35</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W36"><button class="folder-button"><span class="folder-title">W36</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W36"><li><a href="../../../../Personal/Journal/2023/W36/2023-W36" data-for="Personal/Journal/2023/W36/2023-W36">2023-W36</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W37"><button class="folder-button"><span class="folder-title">W37</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W37"><li><a href="../../../../Personal/Journal/2023/W37/2023-W37" data-for="Personal/Journal/2023/W37/2023-W37">2023-W37</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W40"><button class="folder-button"><span class="folder-title">W40</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W40"><li><a href="../../../../Personal/Journal/2023/W40/2023-W40" data-for="Personal/Journal/2023/W40/2023-W40">2023-W40</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W45"><button class="folder-button"><span class="folder-title">W45</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W45"><li><a href="../../../../Personal/Journal/2023/W45/2023-11-12" data-for="Personal/Journal/2023/W45/2023-11-12">2023-11-12</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W46"><button class="folder-button"><span class="folder-title">W46</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W46"><li><a href="../../../../Personal/Journal/2023/W46/2023-11-15" data-for="Personal/Journal/2023/W46/2023-11-15">2023-11-15</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W48"><button class="folder-button"><span class="folder-title">W48</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W48"><li><a href="../../../../Personal/Journal/2023/W48/2023-W48" data-for="Personal/Journal/2023/W48/2023-W48">2023-W48</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W49"><button class="folder-button"><span class="folder-title">W49</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W49"><li><a href="../../../../Personal/Journal/2023/W49/2023-12-07" data-for="Personal/Journal/2023/W49/2023-12-07">2023-12-07</a></li><li><a href="../../../../Personal/Journal/2023/W49/2023-W49" data-for="Personal/Journal/2023/W49/2023-W49">2023-W49</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W50"><button class="folder-button"><span class="folder-title">W50</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W50"><li><a href="../../../../Personal/Journal/2023/W50/2023-12-12" data-for="Personal/Journal/2023/W50/2023-12-12">2023-12-12</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024"><button class="folder-button"><span class="folder-title">2024</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W8"><button class="folder-button"><span class="folder-title">W8</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W8"><li><a href="../../../../Personal/Journal/2024/W8/2024-02-22" data-for="Personal/Journal/2024/W8/2024-02-22">2024-02-22</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W10"><button class="folder-button"><span class="folder-title">W10</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W10"><li><a href="../../../../Personal/Journal/2024/W10/2024-03-05" data-for="Personal/Journal/2024/W10/2024-03-05">2024-03-05</a></li><li><a href="../../../../Personal/Journal/2024/W10/2024-03-06" data-for="Personal/Journal/2024/W10/2024-03-06">2024-03-06</a></li><li><a href="../../../../Personal/Journal/2024/W10/2024-03-07" data-for="Personal/Journal/2024/W10/2024-03-07">2024-03-07</a></li><li><a href="../../../../Personal/Journal/2024/W10/2024-W10" data-for="Personal/Journal/2024/W10/2024-W10">2024-W10</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W11"><button class="folder-button"><span class="folder-title">W11</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W11"><li><a href="../../../../Personal/Journal/2024/W11/2024-03-11" data-for="Personal/Journal/2024/W11/2024-03-11">2024-03-11</a></li><li><a href="../../../../Personal/Journal/2024/W11/2024-03-12" data-for="Personal/Journal/2024/W11/2024-03-12">2024-03-12</a></li><li><a href="../../../../Personal/Journal/2024/W11/2024-03-13" data-for="Personal/Journal/2024/W11/2024-03-13">2024-03-13</a></li><li><a href="../../../../Personal/Journal/2024/W11/2024-W11" data-for="Personal/Journal/2024/W11/2024-W11">2024-W11</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W12"><button class="folder-button"><span class="folder-title">W12</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W12"><li><a href="../../../../Personal/Journal/2024/W12/2024-03-20" data-for="Personal/Journal/2024/W12/2024-03-20">2024-03-20</a></li><li><a href="../../../../Personal/Journal/2024/W12/2024-W12" data-for="Personal/Journal/2024/W12/2024-W12">2024-W12</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W14"><button class="folder-button"><span class="folder-title">W14</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W14"><li><a href="../../../../Personal/Journal/2024/W14/2024-W14" data-for="Personal/Journal/2024/W14/2024-W14">2024-W14</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W16"><button class="folder-button"><span class="folder-title">W16</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W16"><li><a href="../../../../Personal/Journal/2024/W16/2024-W16" data-for="Personal/Journal/2024/W16/2024-W16">2024-W16</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W17"><button class="folder-button"><span class="folder-title">W17</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W17"><li><a href="../../../../Personal/Journal/2024/W17/2024-04-24" data-for="Personal/Journal/2024/W17/2024-04-24">2024-04-24</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W22"><button class="folder-button"><span class="folder-title">W22</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W22"><li><a href="../../../../Personal/Journal/2024/W22/2024-06-02" data-for="Personal/Journal/2024/W22/2024-06-02">2024-06-02</a></li><li><a href="../../../../Personal/Journal/2024/W22/2024-W22" data-for="Personal/Journal/2024/W22/2024-W22">2024-W22</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W23"><button class="folder-button"><span class="folder-title">W23</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W23"><li><a href="../../../../Personal/Journal/2024/W23/2024-06-03" data-for="Personal/Journal/2024/W23/2024-06-03">2024-06-03</a></li><li><a href="../../../../Personal/Journal/2024/W23/2024-06-04" data-for="Personal/Journal/2024/W23/2024-06-04">2024-06-04</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W24"><button class="folder-button"><span class="folder-title">W24</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W24"><li><a href="../../../../Personal/Journal/2024/W24/2024-06-12" data-for="Personal/Journal/2024/W24/2024-06-12">2024-06-12</a></li><li><a href="../../../../Personal/Journal/2024/W24/2024-W24" data-for="Personal/Journal/2024/W24/2024-W24">2024-W24</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W29"><button class="folder-button"><span class="folder-title">W29</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W29"><li><a href="../../../../Personal/Journal/2024/W29/2024-W29" data-for="Personal/Journal/2024/W29/2024-W29">2024-W29</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W30"><button class="folder-button"><span class="folder-title">W30</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W30"><li><a href="../../../../Personal/Journal/2024/W30/2024-07-22" data-for="Personal/Journal/2024/W30/2024-07-22">2024-07-22</a></li><li><a href="../../../../Personal/Journal/2024/W30/2024-07-25" data-for="Personal/Journal/2024/W30/2024-07-25">2024-07-25</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W33"><button class="folder-button"><span class="folder-title">W33</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W33"><li><a href="../../../../Personal/Journal/2024/W33/2024-08-12" data-for="Personal/Journal/2024/W33/2024-08-12">2024-08-12</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W35"><button class="folder-button"><span class="folder-title">W35</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W35"><li><a href="../../../../Personal/Journal/2024/W35/2024-08-31" data-for="Personal/Journal/2024/W35/2024-08-31">2024-08-31</a></li></ul></div></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional"><button class="folder-button"><span class="folder-title">Professional</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Company"><button class="folder-button"><span class="folder-title">Company</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Company"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Company/数字化"><button class="folder-button"><span class="folder-title">数字化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Company/数字化"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Company/数字化/规范"><button class="folder-button"><span class="folder-title">规范</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Company/数字化/规范"><li><a href="../../../../Professional/Company/数字化/规范/企业计算机命名规范" data-for="Professional/Company/数字化/规范/企业计算机命名规范">企业计算机命名规范</a></li><li><a href="../../../../Professional/Company/数字化/规范/企业域名分配规范" data-for="Professional/Company/数字化/规范/企业域名分配规范">域名分配规范</a></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work"><button class="folder-button"><span class="folder-title">Work</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/data-engineer"><button class="folder-button"><span class="folder-title">data-engineer</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/data-engineer"><li><a href="../../../../Professional/Work/data-engineer/home" data-for="Professional/Work/data-engineer/home">数据工程师data-engineer</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/full-stack"><button class="folder-button"><span class="folder-title">full-stack</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/full-stack"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/full-stack/基础"><button class="folder-button"><span class="folder-title">基础</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/full-stack/基础"><li><a href="../../../../Professional/Work/full-stack/基础/CSS" data-for="Professional/Work/full-stack/基础/CSS">CSS</a></li><li><a href="../../../../Professional/Work/full-stack/基础/HTML" data-for="Professional/Work/full-stack/基础/HTML">HTML</a></li><li><a href="../../../../Professional/Work/full-stack/基础/JavaScript" data-for="Professional/Work/full-stack/基础/JavaScript">JavaScript</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/full-stack/工具"><button class="folder-button"><span class="folder-title">工具</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/full-stack/工具"><li><a href="../../../../Professional/Work/full-stack/工具/PM2-工具" data-for="Professional/Work/full-stack/工具/PM2-工具">PM2 工具</a></li><li><a href="../../../../Professional/Work/full-stack/工具/Webpack" data-for="Professional/Work/full-stack/工具/Webpack">Webpack</a></li><li><a href="../../../../Professional/Work/full-stack/工具/包管理工具" data-for="Professional/Work/full-stack/工具/包管理工具">包管理器</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/full-stack/文化"><button class="folder-button"><span class="folder-title">文化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/full-stack/文化"><li><a href="../../../../Professional/Work/full-stack/文化/历史发展" data-for="Professional/Work/full-stack/文化/历史发展">历史发展</a></li><li><a href="../../../../Professional/Work/full-stack/文化/概述" data-for="Professional/Work/full-stack/文化/概述">概述</a></li><li><a href="../../../../Professional/Work/full-stack/文化/现代化开发工具链" data-for="Professional/Work/full-stack/文化/现代化开发工具链">现代化开发工具链</a></li></ul></div></li><li><a href="../../../../Professional/Work/full-stack/home" data-for="Professional/Work/full-stack/home">前端工程师Front-End Engineer</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap"><button class="folder-button"><span class="folder-title">roadmap</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/权益保障"><button class="folder-button"><span class="folder-title">权益保障</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/权益保障"><li><a href="../../../../Professional/Work/roadmap/权益保障/仲裁指南" data-for="Professional/Work/roadmap/权益保障/仲裁指南">仲裁指南</a></li><li><a href="../../../../Professional/Work/roadmap/权益保障/职场维权实战经验" data-for="Professional/Work/roadmap/权益保障/职场维权实战经验">职场维权实战经验</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/求职经验"><button class="folder-button"><span class="folder-title">求职经验</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/求职经验"><li><a href="../../../../Professional/Work/roadmap/求职经验/互联网行业-郑州" data-for="Professional/Work/roadmap/求职经验/互联网行业-郑州">互联网行业-郑州</a></li><li><a href="../../../../Professional/Work/roadmap/求职经验/写给软件工程师的建议" data-for="Professional/Work/roadmap/求职经验/写给软件工程师的建议">写给软件工程师的建议</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/简历攻略"><button class="folder-button"><span class="folder-title">简历攻略</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/简历攻略"><li><a href="../../../../Professional/Work/roadmap/简历攻略/IT-类简历" data-for="Professional/Work/roadmap/简历攻略/IT-类简历">IT 类简历</a></li><li><a href="../../../../Professional/Work/roadmap/简历攻略/简历原则" data-for="Professional/Work/roadmap/简历攻略/简历原则">简历原则</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/职业规划"><button class="folder-button"><span class="folder-title">职业规划</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/职业规划"><li><a href="../../../../Professional/Work/roadmap/职业规划/开发者职业路线图" data-for="Professional/Work/roadmap/职业规划/开发者职业路线图">开发者职业路线图</a></li><li><a href="../../../../Professional/Work/roadmap/职业规划/职业宏观规划图" data-for="Professional/Work/roadmap/职业规划/职业宏观规划图">职业宏观规划图</a></li><li><a href="../../../../Professional/Work/roadmap/职业规划/职业宏观路线图" data-for="Professional/Work/roadmap/职业规划/职业宏观路线图">职业宏观路线图</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/职场心得"><button class="folder-button"><span class="folder-title">职场心得</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/职场心得"><li><a href="../../../../Professional/Work/roadmap/职场心得/华为新员工的-8-个阶段" data-for="Professional/Work/roadmap/职场心得/华为新员工的-8-个阶段">华为新员工的 8 个阶段</a></li><li><a href="../../../../Professional/Work/roadmap/职场心得/如何平衡工作和生活" data-for="Professional/Work/roadmap/职场心得/如何平衡工作和生活">如何平衡工作和生活</a></li><li><a href="../../../../Professional/Work/roadmap/职场心得/如何度过新手村" data-for="Professional/Work/roadmap/职场心得/如何度过新手村">如何度过新手村</a></li><li><a href="../../../../Professional/Work/roadmap/职场心得/如何有效应对职场政治" data-for="Professional/Work/roadmap/职场心得/如何有效应对职场政治">如何有效应对职场政治</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/薪酬攻略"><button class="folder-button"><span class="folder-title">薪酬攻略</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/薪酬攻略"><li><a href="../../../../Professional/Work/roadmap/薪酬攻略/社会保障" data-for="Professional/Work/roadmap/薪酬攻略/社会保障">社会保障</a></li><li><a href="../../../../Professional/Work/roadmap/薪酬攻略/绩效考核" data-for="Professional/Work/roadmap/薪酬攻略/绩效考核">绩效考核</a></li><li><a href="../../../../Professional/Work/roadmap/薪酬攻略/薪酬制度" data-for="Professional/Work/roadmap/薪酬攻略/薪酬制度">薪酬制度</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/面试法则"><button class="folder-button"><span class="folder-title">面试法则</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/面试法则"><li><a href="../../../../Professional/Work/roadmap/面试法则/反向面试" data-for="Professional/Work/roadmap/面试法则/反向面试">反向面试</a></li><li><a href="../../../../Professional/Work/roadmap/面试法则/面试-10-大常见问题" data-for="Professional/Work/roadmap/面试法则/面试-10-大常见问题">面试 10 大常见问题</a></li></ul></div></li><li><a href="../../../../Professional/Work/roadmap/home" data-for="Professional/Work/roadmap/home">求职之路</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/sre-engineer"><button class="folder-button"><span class="folder-title">sre-engineer</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/sre-engineer"><li><a href="../../../../Professional/Work/sre-engineer/home" data-for="Professional/Work/sre-engineer/home">SRE (站点可靠性工程师)</a></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences"><button class="folder-button"><span class="folder-title">SocialSciences</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences/English"><button class="folder-button"><span class="folder-title">English</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences/English"><li><a href="../../../../SocialSciences/English/字母音标" data-for="SocialSciences/English/字母音标">字母音标</a></li><li><a href="../../../../SocialSciences/English/语法基础" data-for="SocialSciences/English/语法基础">语法基础</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences/Government"><button class="folder-button"><span class="folder-title">Government</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences/Government"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences/Government/中国"><button class="folder-button"><span class="folder-title">中国</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences/Government/中国"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences/Government/中国/标准"><button class="folder-button"><span class="folder-title">标准</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences/Government/中国/标准"><li><a href="../../../../SocialSciences/Government/中国/标准/标准组织" data-for="SocialSciences/Government/中国/标准/标准组织">标准组织</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences/Government/中国/法律"><button class="folder-button"><span class="folder-title">法律</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences/Government/中国/法律"><li><a href="../../../../SocialSciences/Government/中国/法律/法律文书" data-for="SocialSciences/Government/中国/法律/法律文书">法律文书</a></li></ul></div></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology"><button class="folder-button"><span class="folder-title">Technology</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/CloudService"><button class="folder-button"><span class="folder-title">CloudService</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/CloudService"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/CloudService/基础"><button class="folder-button"><span class="folder-title">基础</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/CloudService/基础"><li><a href="../../../../Technology/CloudService/基础/IT-基础架构" data-for="Technology/CloudService/基础/IT-基础架构">IT 基础架构</a></li><li><a href="../../../../Technology/CloudService/基础/云计算" data-for="Technology/CloudService/基础/云计算">云计算概述</a></li><li><a href="../../../../Technology/CloudService/基础/功能即服务FaaS" data-for="Technology/CloudService/基础/功能即服务FaaS">功能即服务FaaS</a></li><li><a href="../../../../Technology/CloudService/基础/基础架构即服务IaaS" data-for="Technology/CloudService/基础/基础架构即服务IaaS">基础架构即服务IaaS</a></li><li><a href="../../../../Technology/CloudService/基础/平台即服务PaaS" data-for="Technology/CloudService/基础/平台即服务PaaS">平台即服务PaaS</a></li><li><a href="../../../../Technology/CloudService/基础/软件即服务SaaS" data-for="Technology/CloudService/基础/软件即服务SaaS">软件即服务SaaS</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork"><button class="folder-button"><span class="folder-title">ComputerNetwork</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork/Nginx"><button class="folder-button"><span class="folder-title">Nginx</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork/Nginx"><li><a href="../../../../Technology/ComputerNetwork/Nginx/概述" data-for="Technology/ComputerNetwork/Nginx/概述">Nginx 概述</a></li><li><a href="../../../../Technology/ComputerNetwork/Nginx/内容缓存" data-for="Technology/ComputerNetwork/Nginx/内容缓存">内容缓存</a></li><li><a href="../../../../Technology/ComputerNetwork/Nginx/基础配置" data-for="Technology/ComputerNetwork/Nginx/基础配置">基础配置</a></li><li><a href="../../../../Technology/ComputerNetwork/Nginx/负载均衡" data-for="Technology/ComputerNetwork/Nginx/负载均衡">负载均衡</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork/公共服务"><button class="folder-button"><span class="folder-title">公共服务</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork/公共服务"><li><a href="../../../../Technology/ComputerNetwork/公共服务/IPv4-DNS-服务" data-for="Technology/ComputerNetwork/公共服务/IPv4-DNS-服务">IPv4 DNS 服务</a></li><li><a href="../../../../Technology/ComputerNetwork/公共服务/IPv6-DNS-服务" data-for="Technology/ComputerNetwork/公共服务/IPv6-DNS-服务">IPv6 DNS 服务</a></li><li><a href="../../../../Technology/ComputerNetwork/公共服务/Mirror-镜像站" data-for="Technology/ComputerNetwork/公共服务/Mirror-镜像站">Mirror 镜像站</a></li><li><a href="../../../../Technology/ComputerNetwork/公共服务/NTP-服务器" data-for="Technology/ComputerNetwork/公共服务/NTP-服务器">NTP 服务器</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork/应用服务"><button class="folder-button"><span class="folder-title">应用服务</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork/应用服务"><li><a href="../../../../Technology/ComputerNetwork/应用服务/CDN-内容分发网络" data-for="Technology/ComputerNetwork/应用服务/CDN-内容分发网络">CDN 内容分发网络</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork/网络协议"><button class="folder-button"><span class="folder-title">网络协议</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork/网络协议"><li><a href="../../../../Technology/ComputerNetwork/网络协议/DHCP-动态主机配置协议" data-for="Technology/ComputerNetwork/网络协议/DHCP-动态主机配置协议">DHCP 动态主机配置协议</a></li><li><a href="../../../../Technology/ComputerNetwork/网络协议/DNS-域名系统" data-for="Technology/ComputerNetwork/网络协议/DNS-域名系统">DNS 域名系统</a></li><li><a href="../../../../Technology/ComputerNetwork/网络协议/IP-网际协议" data-for="Technology/ComputerNetwork/网络协议/IP-网际协议">IP 网际协议</a></li><li><a href="../../../../Technology/ComputerNetwork/网络协议/TCP-传输控制协议" data-for="Technology/ComputerNetwork/网络协议/TCP-传输控制协议">TCP 传输控制协议</a></li><li><a href="../../../../Technology/ComputerNetwork/网络协议/UDP-用户数据报协议" data-for="Technology/ComputerNetwork/网络协议/UDP-用户数据报协议">UDP 用户数据报协议</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork/网络基础"><button class="folder-button"><span class="folder-title">网络基础</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork/网络基础"><li><a href="../../../../Technology/ComputerNetwork/网络基础/网络基础" data-for="Technology/ComputerNetwork/网络基础/网络基础">网络基础</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity"><button class="folder-button"><span class="folder-title">ComputerSecurity</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/信息安全"><button class="folder-button"><span class="folder-title">信息安全</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/信息安全"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/信息安全/OpenPGP"><button class="folder-button"><span class="folder-title">OpenPGP</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/信息安全/OpenPGP"><li><a href="../../../../Technology/ComputerSecurity/信息安全/OpenPGP/GnuPG-简明指南" data-for="Technology/ComputerSecurity/信息安全/OpenPGP/GnuPG-简明指南">GnuPG 简明指南</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/密码学"><button class="folder-button"><span class="folder-title">密码学</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/密码学"><li><a href="../../../../Technology/ComputerSecurity/密码学/简明指南" data-for="Technology/ComputerSecurity/密码学/简明指南">简明指南</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/用户安全"><button class="folder-button"><span class="folder-title">用户安全</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/用户安全"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/用户安全/权限设计"><button class="folder-button"><span class="folder-title">权限设计</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/用户安全/权限设计"><li><a href="../../../../Technology/ComputerSecurity/用户安全/权限设计/主流权限系统的设计" data-for="Technology/ComputerSecurity/用户安全/权限设计/主流权限系统的设计">主流权限系统的设计</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/用户安全/用户鉴权"><button class="folder-button"><span class="folder-title">用户鉴权</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/用户安全/用户鉴权"><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/HTTP-基本鉴权" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/HTTP-基本鉴权">HTTP 基本鉴权</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/JWTJSON-Web-Token鉴权" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/JWTJSON-Web-Token鉴权">JWT 鉴权</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/OAuth-鉴权" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/OAuth-鉴权">OAuth 鉴权</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/Session-Cookie-鉴权" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/Session-Cookie-鉴权">Session-Cookie 鉴权</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/单点登录Single-Sign-On" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/单点登录Single-Sign-On">SSO 单点登录</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/Token-鉴权" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/Token-鉴权">Token 鉴权</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/一键登录适用于原生APP" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/一键登录适用于原生APP">一键登录</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/唯一登录" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/唯一登录">唯一登录</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/扫码登录" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/扫码登录">扫码登录</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/联合登录和信任登录" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/联合登录和信任登录">联合登录和信任登录</a></li></ul></div></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/简明指南" data-for="Technology/ComputerSecurity/用户安全/简明指南">简明指南</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/系统安全"><button class="folder-button"><span class="folder-title">系统安全</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/系统安全"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/系统安全/防火墙"><button class="folder-button"><span class="folder-title">防火墙</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/系统安全/防火墙"><li><a href="../../../../Technology/ComputerSecurity/系统安全/防火墙/网络端口大全" data-for="Technology/ComputerSecurity/系统安全/防火墙/网络端口大全">网络端口大全</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/网络安全"><button class="folder-button"><span class="folder-title">网络安全</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/网络安全"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/网络安全/OpenSSH"><button class="folder-button"><span class="folder-title">OpenSSH</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/网络安全/OpenSSH"><li><a href="../../../../Technology/ComputerSecurity/网络安全/OpenSSH/OpenSSH-使用方法" data-for="Technology/ComputerSecurity/网络安全/OpenSSH/OpenSSH-使用方法">OpenSSH 使用方法</a></li><li><a href="../../../../Technology/ComputerSecurity/网络安全/OpenSSH/OpenSSH-概述" data-for="Technology/ComputerSecurity/网络安全/OpenSSH/OpenSSH-概述">OpenSSH 概述</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/网络安全/OpenSSL"><button class="folder-button"><span class="folder-title">OpenSSL</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/网络安全/OpenSSL"><li><a href="../../../../Technology/ComputerSecurity/网络安全/OpenSSL/简明指南" data-for="Technology/ComputerSecurity/网络安全/OpenSSL/简明指南">简明指南</a></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerStorage"><button class="folder-button"><span class="folder-title">ComputerStorage</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerStorage"><li><a href="../../../../Technology/ComputerStorage/0.-大纲" data-for="Technology/ComputerStorage/0.-大纲">0. 大纲</a></li><li><a href="../../../../Technology/ComputerStorage/1.-存储基础" data-for="Technology/ComputerStorage/1.-存储基础">1. 存储基础</a></li><li><a href="../../../../Technology/ComputerStorage/2.-存储硬件" data-for="Technology/ComputerStorage/2.-存储硬件">2. 存储硬件</a></li><li><a href="../../../../Technology/ComputerStorage/3.-存储架构" data-for="Technology/ComputerStorage/3.-存储架构">3. 存储架构</a></li><li><a href="../../../../Technology/ComputerStorage/4.-文件系统" data-for="Technology/ComputerStorage/4.-文件系统">4. 文件系统</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/DatabaseSystem"><button class="folder-button"><span class="folder-title">DatabaseSystem</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/DatabaseSystem"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/DatabaseSystem/PostgreSQL"><button class="folder-button"><span class="folder-title">PostgreSQL</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/DatabaseSystem/PostgreSQL"><li><a href="../../../../Technology/DatabaseSystem/PostgreSQL/基本概念" data-for="Technology/DatabaseSystem/PostgreSQL/基本概念">基本概念</a></li><li><a href="../../../../Technology/DatabaseSystem/PostgreSQL/安装配置" data-for="Technology/DatabaseSystem/PostgreSQL/安装配置">安装配置</a></li><li><a href="../../../../Technology/DatabaseSystem/PostgreSQL/简介" data-for="Technology/DatabaseSystem/PostgreSQL/简介">简介</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/DatabaseSystem/SQL-语言"><button class="folder-button"><span class="folder-title">SQL 语言</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/DatabaseSystem/SQL-语言"><li><a href="../../../../Technology/DatabaseSystem/SQL-语言/基础语法" data-for="Technology/DatabaseSystem/SQL-语言/基础语法">基础语法</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/DatabaseSystem/基础"><button class="folder-button"><span class="folder-title">基础</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/DatabaseSystem/基础"><li><a href="../../../../Technology/DatabaseSystem/基础/关系型数据库" data-for="Technology/DatabaseSystem/基础/关系型数据库">关系型数据库</a></li><li><a href="../../../../Technology/DatabaseSystem/基础/数据库概述" data-for="Technology/DatabaseSystem/基础/数据库概述">数据库概述</a></li><li><a href="../../../../Technology/DatabaseSystem/基础/非关系型数据库" data-for="Technology/DatabaseSystem/基础/非关系型数据库">非关系型数据库</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted"><button class="folder-button"><span class="folder-title">GettingStarted</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/命令行工具"><button class="folder-button"><span class="folder-title">命令行工具</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/命令行工具"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/命令行工具/PowerShell"><button class="folder-button"><span class="folder-title">PowerShell</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/命令行工具/PowerShell"><li><a href="../../../../Technology/GettingStarted/命令行工具/PowerShell/PowerShell-入门" data-for="Technology/GettingStarted/命令行工具/PowerShell/PowerShell-入门">PowerShell 入门</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/PowerShell/PowerShell-进阶" data-for="Technology/GettingStarted/命令行工具/PowerShell/PowerShell-进阶">PowerShell 进阶</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/PowerShell/PowerShell-高级" data-for="Technology/GettingStarted/命令行工具/PowerShell/PowerShell-高级">PowerShell 高级</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/命令行工具/Shell"><button class="folder-button"><span class="folder-title">Shell</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/命令行工具/Shell"><li><a href="../../../../Technology/GettingStarted/命令行工具/Shell/Shell-命令操作" data-for="Technology/GettingStarted/命令行工具/Shell/Shell-命令操作">Linux 命令行操作</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Shell/Shell-必备锦囊" data-for="Technology/GettingStarted/命令行工具/Shell/Shell-必备锦囊">Shell 必备锦囊</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Shell/Shell-是什么" data-for="Technology/GettingStarted/命令行工具/Shell/Shell-是什么">Shell 是什么</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/命令行工具/Vim"><button class="folder-button"><span class="folder-title">Vim</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/命令行工具/Vim"><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/5.Vim-参考手册" data-for="Technology/GettingStarted/命令行工具/Vim/5.Vim-参考手册">Vim 参考手册</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/4.Vim-实用技巧" data-for="Technology/GettingStarted/命令行工具/Vim/4.Vim-实用技巧">Vim 实用技巧</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/6.Vim-帮助文档" data-for="Technology/GettingStarted/命令行工具/Vim/6.Vim-帮助文档">Vim 帮助文档</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/1.Vim-入门" data-for="Technology/GettingStarted/命令行工具/Vim/1.Vim-入门">Vim 快速入门</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/2.VIM-配置管理" data-for="Technology/GettingStarted/命令行工具/Vim/2.VIM-配置管理">VIM 配置管理</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/3.Vim-高级功能" data-for="Technology/GettingStarted/命令行工具/Vim/3.Vim-高级功能">Vim 高级功能</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/开源指南"><button class="folder-button"><span class="folder-title">开源指南</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/开源指南"><li><a href="../../../../Technology/GettingStarted/开源指南/如何向开源社区提问" data-for="Technology/GettingStarted/开源指南/如何向开源社区提问">如何向开源社区提问</a></li><li><a href="../../../../Technology/GettingStarted/开源指南/如何有效报告-BUG" data-for="Technology/GettingStarted/开源指南/如何有效报告-BUG">如何有效报告 BUG</a></li><li><a href="../../../../Technology/GettingStarted/开源指南/开源指北" data-for="Technology/GettingStarted/开源指南/开源指北">开源指北</a></li><li><a href="../../../../Technology/GettingStarted/开源指南/提问的智慧" data-for="Technology/GettingStarted/开源指南/提问的智慧">提问的智慧</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/文本处理"><button class="folder-button"><span class="folder-title">文本处理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/文本处理"><li><a href="../../../../Technology/GettingStarted/文本处理/正则表达式" data-for="Technology/GettingStarted/文本处理/正则表达式">正则表达式</a></li><li><a href="../../../../Technology/GettingStarted/文本处理/结构化文件" data-for="Technology/GettingStarted/文本处理/结构化文件">结构化文件</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/版本控制"><button class="folder-button"><span class="folder-title">版本控制</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/版本控制"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/版本控制/Git"><button class="folder-button"><span class="folder-title">Git</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/版本控制/Git"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/版本控制/Git/入门"><button class="folder-button"><span class="folder-title">入门</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/版本控制/Git/入门"><li><a href="../../../../Technology/GettingStarted/版本控制/Git/入门/分支" data-for="Technology/GettingStarted/版本控制/Git/入门/分支">分支</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/入门/协议" data-for="Technology/GettingStarted/版本控制/Git/入门/协议">协议</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/入门/基础" data-for="Technology/GettingStarted/版本控制/Git/入门/基础">基础</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/入门/起步" data-for="Technology/GettingStarted/版本控制/Git/入门/起步">起步</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/版本控制/Git/进阶"><button class="folder-button"><span class="folder-title">进阶</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/版本控制/Git/进阶"><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/Git-LFS" data-for="Technology/GettingStarted/版本控制/Git/进阶/Git-LFS">Git-LFS</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/参考手册" data-for="Technology/GettingStarted/版本控制/Git/进阶/参考手册">参考手册</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/工作流" data-for="Technology/GettingStarted/版本控制/Git/进阶/工作流">工作流</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/常用命令" data-for="Technology/GettingStarted/版本控制/Git/进阶/常用命令">常用命令</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/常用技巧" data-for="Technology/GettingStarted/版本控制/Git/进阶/常用技巧">常用技巧</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/思维导图" data-for="Technology/GettingStarted/版本控制/Git/进阶/思维导图">思维导图</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/钩子" data-for="Technology/GettingStarted/版本控制/Git/进阶/钩子">钩子</a></li></ul></div></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem"><button class="folder-button"><span class="folder-title">OperatingSystem</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Automation"><button class="folder-button"><span class="folder-title">Automation</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Automation"><li><a href="../../../../Technology/OperatingSystem/Automation/Ansible" data-for="Technology/OperatingSystem/Automation/Ansible">Ansible</a></li><li><a href="../../../../Technology/OperatingSystem/Automation/Cloud-init-快速部署" data-for="Technology/OperatingSystem/Automation/Cloud-init-快速部署">Cloud-init</a></li><li><a href="../../../../Technology/OperatingSystem/Automation/PXE--系统部署" data-for="Technology/OperatingSystem/Automation/PXE--系统部署">PXE 自动化部署</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Docker"><button class="folder-button"><span class="folder-title">Docker</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Docker"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Docker/基础"><button class="folder-button"><span class="folder-title">基础</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Docker/基础"><li><a href="../../../../Technology/OperatingSystem/Docker/基础/基础概念" data-for="Technology/OperatingSystem/Docker/基础/基础概念">基础概念</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/基础/安装配置" data-for="Technology/OperatingSystem/Docker/基础/安装配置">安装配置</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/基础/简介" data-for="Technology/OperatingSystem/Docker/基础/简介">简介</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Docker/进阶"><button class="folder-button"><span class="folder-title">进阶</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Docker/进阶"><li><a href="../../../../Technology/OperatingSystem/Docker/进阶/Docker-Compose" data-for="Technology/OperatingSystem/Docker/进阶/Docker-Compose">Docker Compose</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/进阶/Docker-Dockerfile" data-for="Technology/OperatingSystem/Docker/进阶/Docker-Dockerfile">Docker Dockerfile</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/进阶/Docker-使用" data-for="Technology/OperatingSystem/Docker/进阶/Docker-使用">Docker 使用</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Docker/高级"><button class="folder-button"><span class="folder-title">高级</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Docker/高级"><li><a href="../../../../Technology/OperatingSystem/Docker/高级/Docker-命令手册" data-for="Technology/OperatingSystem/Docker/高级/Docker-命令手册">Docker 命令手册</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/高级/Docker-存储" data-for="Technology/OperatingSystem/Docker/高级/Docker-存储">Docker 存储</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/高级/Docker-网络" data-for="Technology/OperatingSystem/Docker/高级/Docker-网络">Docker 网络</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux"><button class="folder-button"><span class="folder-title">Linux</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/1.文化"><button class="folder-button"><span class="folder-title">1.文化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/1.文化"><li><a href="../../../../Technology/OperatingSystem/Linux/1.文化/GNU-and-Linux-历史与发展" data-for="Technology/OperatingSystem/Linux/1.文化/GNU-and-Linux-历史与发展">GNU&amp;Linux 历史与发展</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/1.文化/GNU-and-Linux-社区与文化" data-for="Technology/OperatingSystem/Linux/1.文化/GNU-and-Linux-社区与文化">GNU&amp;Linux 社区与文化</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/1.文化/开源软件的概念与重要性" data-for="Technology/OperatingSystem/Linux/1.文化/开源软件的概念与重要性">开源软件的概念与重要性</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/2.安装"><button class="folder-button"><span class="folder-title">2.安装</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/2.安装"><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/GRUB-引导程序" data-for="Technology/OperatingSystem/Linux/2.安装/GRUB-引导程序">GRUB 引导程序</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/Linux-下-0-1-手动安装-Arch-Linux" data-for="Technology/OperatingSystem/Linux/2.安装/Linux-下-0-1-手动安装-Arch-Linux">Linux 下 0-1 手动安装 Arch Linux</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/Linux-下源代码编译与安装实战" data-for="Technology/OperatingSystem/Linux/2.安装/Linux-下源代码编译与安装实战">Linux 下源代码编译与安装实战</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/Linux-发行版镜像" data-for="Technology/OperatingSystem/Linux/2.安装/Linux-发行版镜像">Linux 发行版镜像</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/Linux-安装和配置" data-for="Technology/OperatingSystem/Linux/2.安装/Linux-安装和配置">Linux 安装和配置</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/Linux-无法启动排查指南" data-for="Technology/OperatingSystem/Linux/2.安装/Linux-无法启动排查指南">Linux 无法启动排查指南</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/3.基础操作"><button class="folder-button"><span class="folder-title">3.基础操作</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/3.基础操作"><li><a href="../../../../Technology/OperatingSystem/Linux/3.基础操作/Linux-包管理器" data-for="Technology/OperatingSystem/Linux/3.基础操作/Linux-包管理器">Linux 包管理器</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/3.基础操作/Shell-命令行操作" data-for="Technology/OperatingSystem/Linux/3.基础操作/Shell-命令行操作">Linux 命令行操作</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/3.基础操作/Linux-文件管理" data-for="Technology/OperatingSystem/Linux/3.基础操作/Linux-文件管理">Linux 文件管理</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/3.基础操作/Linux-环境变量" data-for="Technology/OperatingSystem/Linux/3.基础操作/Linux-环境变量">Linux 环境变量</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/3.基础操作/Linux-用户和权限" data-for="Technology/OperatingSystem/Linux/3.基础操作/Linux-用户和权限">Linux 用户和权限</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/4.系统管理"><button class="folder-button"><span class="folder-title">4.系统管理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/4.系统管理"><li><a href="../../../../Technology/OperatingSystem/Linux/4.系统管理/Linux-内核管理" data-for="Technology/OperatingSystem/Linux/4.系统管理/Linux-内核管理">Linux 内核管理</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/4.系统管理/Linux-基本配置" data-for="Technology/OperatingSystem/Linux/4.系统管理/Linux-基本配置">Linux 基本配置</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/4.系统管理/Linux-日志管理" data-for="Technology/OperatingSystem/Linux/4.系统管理/Linux-日志管理">Linux 日志管理</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/4.系统管理/Linux-服务管理" data-for="Technology/OperatingSystem/Linux/4.系统管理/Linux-服务管理">Linux 服务管理</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/4.系统管理/Linux-系统启动详解" data-for="Technology/OperatingSystem/Linux/4.系统管理/Linux-系统启动详解">Linux 服务管理</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/5.安全配置"><button class="folder-button"><span class="folder-title">5.安全配置</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/5.安全配置"><li><a href="../../../../Technology/OperatingSystem/Linux/5.安全配置/Linux-系统安全与防护" data-for="Technology/OperatingSystem/Linux/5.安全配置/Linux-系统安全与防护">Linux 系统安全与防护</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/6.网络管理"><button class="folder-button"><span class="folder-title">6.网络管理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/6.网络管理"><li><a href="../../../../Technology/OperatingSystem/Linux/6.网络管理/Linux-网络管理" data-for="Technology/OperatingSystem/Linux/6.网络管理/Linux-网络管理">Linux 网络管理</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/7.存储管理"><button class="folder-button"><span class="folder-title">7.存储管理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/7.存储管理"><li><a href="../../../../Technology/OperatingSystem/Linux/7.存储管理/Linux-文件系统" data-for="Technology/OperatingSystem/Linux/7.存储管理/Linux-文件系统">Linux 文件系统</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Virtualization"><button class="folder-button"><span class="folder-title">Virtualization</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Virtualization"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Virtualization/1.虚拟化概述"><button class="folder-button"><span class="folder-title">1.虚拟化概述</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Virtualization/1.虚拟化概述"><li><a href="../../../../Technology/OperatingSystem/Virtualization/1.虚拟化概述/虚拟化平台简介" data-for="Technology/OperatingSystem/Virtualization/1.虚拟化概述/虚拟化平台简介">虚拟化平台简介</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/1.虚拟化概述/虚拟化概述" data-for="Technology/OperatingSystem/Virtualization/1.虚拟化概述/虚拟化概述">虚拟化概述</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Virtualization/2.KVM虚拟化"><button class="folder-button"><span class="folder-title">2.KVM虚拟化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Virtualization/2.KVM虚拟化"><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/1.-KVM-概述" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/1.-KVM-概述">1. KVM 概述</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/2.-KVM-安装配置" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/2.-KVM-安装配置">2. KVM 安装配置</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/3.-KVM-管理工具" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/3.-KVM-管理工具">3. KVM 管理工具</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/4.-KVM-网络配置" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/4.-KVM-网络配置">4. KVM 网络配置</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/5.-KVM-存储管理" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/5.-KVM-存储管理">5. KVM 存储管理</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/6.-KVM-性能优化" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/6.-KVM-性能优化">6. KVM 性能优化</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/7.-KVM-系统监控" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/7.-KVM-系统监控">7. KVM 系统监控</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Windows"><button class="folder-button"><span class="folder-title">Windows</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Windows"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Windows/文化"><button class="folder-button"><span class="folder-title">文化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Windows/文化"><li><a href="../../../../Technology/OperatingSystem/Windows/文化/微软及其Windows系统的历史发展" data-for="Technology/OperatingSystem/Windows/文化/微软及其Windows系统的历史发展">微软及其Windows系统的历史发展</a></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage"><button class="folder-button"><span class="folder-title">ProgrammingLanguage</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python"><button class="folder-button"><span class="folder-title">Python</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/入门"><button class="folder-button"><span class="folder-title">入门</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/入门"><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/函数方法" data-for="Technology/ProgrammingLanguage/Python/入门/函数方法">函数方法</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/基础语法" data-for="Technology/ProgrammingLanguage/Python/入门/基础语法">基础语法</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/控制语句" data-for="Technology/ProgrammingLanguage/Python/入门/控制语句">控制语句</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/数据类型" data-for="Technology/ProgrammingLanguage/Python/入门/数据类型">数据类型</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/数据结构" data-for="Technology/ProgrammingLanguage/Python/入门/数据结构">数据结构</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/模块和包" data-for="Technology/ProgrammingLanguage/Python/入门/模块和包">模块和包</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/面对对象" data-for="Technology/ProgrammingLanguage/Python/入门/面对对象">面对对象</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/文化"><button class="folder-button"><span class="folder-title">文化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/文化"><li><a href="../../../../Technology/ProgrammingLanguage/Python/文化/发展历史" data-for="Technology/ProgrammingLanguage/Python/文化/发展历史">发展历史</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/文化/生命周期" data-for="Technology/ProgrammingLanguage/Python/文化/生命周期">生命周期</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/文化/社区文化" data-for="Technology/ProgrammingLanguage/Python/文化/社区文化">社区文化</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/文化/设计哲学" data-for="Technology/ProgrammingLanguage/Python/文化/设计哲学">设计哲学</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/文化/语言特性" data-for="Technology/ProgrammingLanguage/Python/文化/语言特性">语言特性</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块"><button class="folder-button"><span class="folder-title">模块</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块/WEB开发"><button class="folder-button"><span class="folder-title">WEB开发</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块/WEB开发"><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/WEB开发/Jinja-模板引擎" data-for="Technology/ProgrammingLanguage/Python/模块/WEB开发/Jinja-模板引擎">Jinja 模板引擎</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块/数据处理"><button class="folder-button"><span class="folder-title">数据处理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块/数据处理"><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/数据处理/configparser-配置文件解析器" data-for="Technology/ProgrammingLanguage/Python/模块/数据处理/configparser-配置文件解析器">configparser 配置文件解析器</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/数据处理/csv-文件读写" data-for="Technology/ProgrammingLanguage/Python/模块/数据处理/csv-文件读写">csv 文件读写</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/数据处理/json-编码和解码器" data-for="Technology/ProgrammingLanguage/Python/模块/数据处理/json-编码和解码器">json 编码和解码器</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块/文本处理"><button class="folder-button"><span class="folder-title">文本处理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块/文本处理"><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/文本处理/re-----正则表达式操作" data-for="Technology/ProgrammingLanguage/Python/模块/文本处理/re-----正则表达式操作">re --- 正则表达式操作</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块/系统交互"><button class="folder-button"><span class="folder-title">系统交互</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块/系统交互"><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/dotenv-环境变量管理" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/dotenv-环境变量管理">dotenv 环境变量管理</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/logging-日志记录工具" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/logging-日志记录工具">logging 日志记录工具</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/loguru-日志库" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/loguru-日志库">loguru 日志库</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/os-多种操作系统接口" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/os-多种操作系统接口">os 多种操作系统接口</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/subprocess-子进程管理" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/subprocess-子进程管理">subprocess 子进程管理</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/sys-系统相关的形参和函数" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/sys-系统相关的形参和函数">sys 系统相关的形参和函数</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块/网络处理"><button class="folder-button"><span class="folder-title">网络处理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块/网络处理"><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/网络处理/requests-HTTP-库" data-for="Technology/ProgrammingLanguage/Python/模块/网络处理/requests-HTTP-库">requests HTTP 库</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/网络处理/socket-底层网络接口" data-for="Technology/ProgrammingLanguage/Python/模块/网络处理/socket-底层网络接口">socket 底层网络接口</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/网络处理/urllib-URL-处理模块" data-for="Technology/ProgrammingLanguage/Python/模块/网络处理/urllib-URL-处理模块">urllib URL 处理模块</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/进阶"><button class="folder-button"><span class="folder-title">进阶</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/进阶"><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/函数式编程" data-for="Technology/ProgrammingLanguage/Python/进阶/函数式编程">函数式编程</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/垃圾回收" data-for="Technology/ProgrammingLanguage/Python/进阶/垃圾回收">垃圾回收</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/并行和并发" data-for="Technology/ProgrammingLanguage/Python/进阶/并行和并发">并行和并发</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/异常处理" data-for="Technology/ProgrammingLanguage/Python/进阶/异常处理">异常处理</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/数据库操作" data-for="Technology/ProgrammingLanguage/Python/进阶/数据库操作">数据库操作</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/文件和IO操作" data-for="Technology/ProgrammingLanguage/Python/进阶/文件和IO操作">文件和IO操作</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/测试和调试" data-for="Technology/ProgrammingLanguage/Python/进阶/测试和调试">测试和调试</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/资源管理" data-for="Technology/ProgrammingLanguage/Python/进阶/资源管理">资源管理</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/面向对象进阶" data-for="Technology/ProgrammingLanguage/Python/进阶/面向对象进阶">面向对象</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/项目"><button class="folder-button"><span class="folder-title">项目</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/项目"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/项目/虚拟环境"><button class="folder-button"><span class="folder-title">虚拟环境</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/项目/虚拟环境"><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/pip" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/pip">pip</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/pipenv" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/pipenv">pipenv</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/poetry" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/poetry">poetry</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/pyenv" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/pyenv">pyenv</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/virtualenv" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/virtualenv">Virtualenv</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/概述" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/概述">概述</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/项目/风格指南"><button class="folder-button"><span class="folder-title">风格指南</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/项目/风格指南"><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/风格指南/风格指南" data-for="Technology/ProgrammingLanguage/Python/项目/风格指南/风格指南">Python 风格指南</a></li></ul></div></li></ul></div></li></ul></div></li><li><a href="../../../../Technology/ProgrammingLanguage/home" data-for="Technology/ProgrammingLanguage/home">程序设计语言</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/SoftwareEngineering"><button class="folder-button"><span class="folder-title">SoftwareEngineering</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/SoftwareEngineering"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/SoftwareEngineering/CI-and-CD"><button class="folder-button"><span class="folder-title">CI&amp;CD</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/SoftwareEngineering/CI-and-CD"><li><a href="../../../../Technology/SoftwareEngineering/CI-and-CD/GitHub-Actions" data-for="Technology/SoftwareEngineering/CI-and-CD/GitHub-Actions">GitHub Actions</a></li><li><a href="../../../../Technology/SoftwareEngineering/CI-and-CD/GitLab-Runner" data-for="Technology/SoftwareEngineering/CI-and-CD/GitLab-Runner">GitLab Runner</a></li><li><a href="../../../../Technology/SoftwareEngineering/CI-and-CD/Jenkins" data-for="Technology/SoftwareEngineering/CI-and-CD/Jenkins">Jenkins</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/SoftwareEngineering/协作规范"><button class="folder-button"><span class="folder-title">协作规范</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/SoftwareEngineering/协作规范"><li><a href="../../../../Technology/SoftwareEngineering/协作规范/8.交流反馈Issue" data-for="Technology/SoftwareEngineering/协作规范/8.交流反馈Issue">交流反馈Issue</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/1.关于Readme" data-for="Technology/SoftwareEngineering/协作规范/1.关于Readme">关于Readme</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/4.分支Branch" data-for="Technology/SoftwareEngineering/协作规范/4.分支Branch">分支Branch</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/2.开源协议License" data-for="Technology/SoftwareEngineering/协作规范/2.开源协议License">开源协议License</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/5.日志Commit" data-for="Technology/SoftwareEngineering/协作规范/5.日志Commit">日志Commit</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/7.注释Comments" data-for="Technology/SoftwareEngineering/协作规范/7.注释Comments">注释Comments</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/6.版本Tag" data-for="Technology/SoftwareEngineering/协作规范/6.版本Tag">版本Tag</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/3.贡献者协议Contributing" data-for="Technology/SoftwareEngineering/协作规范/3.贡献者协议Contributing">贡献者协议Contributing</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/SoftwareEngineering/技术文档"><button class="folder-button"><span class="folder-title">技术文档</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/SoftwareEngineering/技术文档"><li><a href="../../../../Technology/SoftwareEngineering/技术文档/3.命名约定" data-for="Technology/SoftwareEngineering/技术文档/3.命名约定">命名约定</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/5.文档内容" data-for="Technology/SoftwareEngineering/技术文档/5.文档内容">文档内容</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/6.文档结构" data-for="Technology/SoftwareEngineering/技术文档/6.文档结构">文档结构</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/2.标点符号" data-for="Technology/SoftwareEngineering/技术文档/2.标点符号">标点符号</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/1.简介" data-for="Technology/SoftwareEngineering/技术文档/1.简介">简介</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/4.语言风格" data-for="Technology/SoftwareEngineering/技术文档/4.语言风格">语言风格</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/7.附录资料" data-for="Technology/SoftwareEngineering/技术文档/7.附录资料">附录资料</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/StructuresAlgorithms"><button class="folder-button"><span class="folder-title">StructuresAlgorithms</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/StructuresAlgorithms"><li><a href="../../../../Technology/StructuresAlgorithms/数据结构" data-for="Technology/StructuresAlgorithms/数据结构">数据结构</a></li><li><a href="../../../../Technology/StructuresAlgorithms/算法" data-for="Technology/StructuresAlgorithms/算法">算法</a></li></ul></div></li></ul></div></li><li><div class="folder-outer "><ul style="padding-left:0;" class="content" data-folderul></ul></div></li></ul></div></li><li id="explorer-end"></li></ul></div></div><div class="recent-notes desktop-only"><h3>博客</h3><ul class="recent-ul"><li class="recent-li"><div class="section"><div class="desc"><h3><a href="../../../../Personal/Blog/2024/回读者信──240816" class="internal">回读者信──240816</a></h3></div><p class="meta">2024年8月16日</p></div></li><li class="recent-li"><div class="section"><div class="desc"><h3><a href="../../../../Personal/Blog/2024/乌兰哈达火山银河之旅" class="internal">乌兰哈达火山银河之旅</a></h3></div><p class="meta">2024年6月27日</p></div></li><li class="recent-li"><div class="section"><div class="desc"><h3><a href="../../../../Personal/Blog/2024/冰箱,让你我错过了多少新鲜的生活?" class="internal">冰箱,让你我错过了多少新鲜的生活?</a></h3></div><p class="meta">2024年6月27日</p></div></li></ul></div></div><div class="center"><div class="page-header"><div class="popover-hint"><nav class="breadcrumb-container" aria-label="breadcrumbs"><div class="breadcrumb-element"><a href="../../../../">Home</a><p> </p></div><div class="breadcrumb-element"><a href="../../../../Technology/">Technology</a><p> </p></div><div class="breadcrumb-element"><a href="../../../../Technology/ProgrammingLanguage/">ProgrammingLanguage</a><p> </p></div><div class="breadcrumb-element"><a href="../../../../Technology/ProgrammingLanguage/Python/">Python</a><p> </p></div><div class="breadcrumb-element"><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/">进阶</a><p> </p></div><div class="breadcrumb-element"><a href>并行和并发</a></div></nav><h1 class="article-title">并行和并发</h1><p show-comma="true" class="content-meta"><span>2023年8月11日</span><span>25分钟阅读</span></p><ul class="tags"><li><a href="../../../../tags/Python/进阶" class="internal tag-link">Python/进阶</a></li><li><a href="../../../../tags/技术/程序语言" class="internal tag-link">技术/程序语言</a></li></ul></div></div><article class="popover-hint"><h2 id="基础概念">基础概念<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#基础概念" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<h3 id="并发与并行">并发与并行<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#并发与并行" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<pre><code class="mermaid">graph TD
concurrency[并发]
task1[任务1] --> run1[运行...]
task2[任务2] --> run2[运行...]
task3[任务3] --> run3[运行...]
concurrency --> task1
concurrency --> task2
concurrency --> task3
</code></pre>
<p><strong>并发Concurrency指的是多个任务在近似同一时间内启动和运行的能力。<strong>不同于并行,这些任务不一定在同一时间点真正地执行,但它们可能看起来似乎是同时进行的。这经常是</strong>通过任务切换或调度来实现的</strong>,使得每个任务都可以得到处理器的时间片,并轮流执行。</p>
<blockquote>
<p>例子:一个银行柜台,只有一位出纳员,但有多位客户在排队等待服务。出纳员可能会处理第一个客户的部分业务,然后转向第二个客户处理其业务,之后再返回第一个客户,以此类推。</p>
<p>尽管在任何特定时刻只有一个客户正在得到服务,但因为切换得足够快,所有的客户可能都觉得自己几乎是在同一时间得到服务的。这就是并发。</p>
</blockquote>
<pre><code class="mermaid">
graph TD
parallelism[并行]
cpu1[处理单元1] --> run1[运行任务1]
cpu2[处理单元2] --> run2[运行任务2]
cpu3[处理单元3] --> run3[运行任务3]
parallelism --> cpu1
parallelism --> cpu2
parallelism --> cpu3
</code></pre>
<p>**并行Parallelism指的是多个任务或多个处理单元在同一时刻真正地同时执行。**与并发不同,它不仅仅是任务准备同时运行或看似同时运行,而是真正地在同一时刻执行。这通常在具有多个处理器或多个核心的计算机系统中发生。</p>
<blockquote>
<p>例子:一个快餐店,里面有三个员工。当三位顾客同时走进店内并分别点餐时,如果每位员工分别为每位顾客制作餐点,而且三位员工都在同一时刻开始并同时完成任务,那么这就是并行。</p>
<p>每位员工和他们分别服务的顾客可以看作是一个处理单元和一个任务。</p>
</blockquote>
<h3 id="同步与异步">同步与异步<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#同步与异步" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<pre><code class="mermaid">graph TD
synchronous[同步]
op1[操作1] --> op2[操作2]
op2 --> op3[操作3]
synchronous --> op1
</code></pre>
<p>**同步Synchronous描述的是一个操作或任务需要等待另一个操作或任务完成之后才能开始或继续执行。**它通常涉及一种线性或顺序的流程,其中一个操作完全依赖于另一个操作的完成。</p>
<blockquote>
<p>例子:在超市结账时,如果只有一个收银员,那么顾客需要按照顺序来结账。第一个顾客必须完成结账并离开,第二个顾客才能开始结账,以此类推。</p>
<p>这里的每个结账过程都是同步的,因为每个顾客的结账必须在前一个顾客完成后才能开始。</p>
</blockquote>
<pre><code class="mermaid">graph LR
asynchronous[异步]
op1[操作1] --> callback1[回调1]
op2[操作2]
op3[操作3]
asynchronous --> op1
asynchronous --> op2
asynchronous --> op3
</code></pre>
<p>**异步Asynchronous描述的是一个操作开始后并不需要等待其完成可以继续执行其他操作。**一旦异步操作完成,通常通过回调、事件、通知或其他机制来获取结果或进一步处理。</p>
<blockquote>
<p>例子:你在一家咖啡店点了一杯咖啡。而不是站在柜台等待咖啡制作完成,你可以找个座位坐下,甚至看书或工作。当咖啡制作好,店员会叫你的名字或号码,此时你前去取杯。</p>
<p>在这个期间,你并没有闲置,而是进行了其他活动。</p>
</blockquote>
<h3 id="阻塞与非阻塞">阻塞与非阻塞<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#阻塞与非阻塞" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<pre><code class="mermaid">graph TD
blocking[阻塞]
op1[操作1] --> wait[等待资源...]
blocking --> op1
</code></pre>
<p>阻塞Blocking描述的是当一个操作或任务等待某个条件通常是某种资源满足时它会进入一个暂停或等待状态。在该条件被满足之前操作或任务不会继续执行。</p>
<blockquote>
<p>例子:你在电话上等待客服代表。在你等待的时候,你不能使用电话进行其他通话,也不能结束当前的通话,直到客服代表接听你的电话。</p>
<p>在这段时间里,你的电话线路被阻塞。</p>
</blockquote>
<pre><code class="mermaid">graph LR
nonBlocking[非阻塞]
op1[操作1] --> return[立即返回]
continueOp[继续其他操作]
nonBlocking --> op1
op1 --> continueOp
</code></pre>
<p>**非阻塞Non-blocking描述的是当一个操作或任务遇到必须等待的条件如等待某种资源它不会进入暂停或等待状态而是立即返回让程序可以继续执行其他操作。**当原始操作可以继续进行时,它会在适当的时间继续。</p>
<blockquote>
<p>例子:一个自助餐厅。即使前面的人在选择食物并花费很长时间,你也可以选择跳过他们,去取你想要的食物,而不必等待。</p>
<p>这种情况下,你的选择流程是非阻塞的</p>
</blockquote>
<h3 id="特性对比">特性对比<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#特性对比" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<div class="table-container"><table><thead><tr><th>特性</th><th>适用背景</th><th>优点</th><th>缺点</th><th>注意事项</th></tr></thead><tbody><tr><td>并发</td><td>多任务需在相近的时间内执行但不一定同时 - 单核或多核系统</td><td>资源高效利用、提高响应性</td><td>任务管理和调度可能复杂</td><td>需要避免任务间的资源争用</td></tr><tr><td>并行</td><td>同时执行多任务、多核或多处理器系统</td><td>性能大幅提升、任务真正同时执行</td><td>需要硬件支持、并行化设计可能复杂</td><td>要注意数据共享和并行任务之间的同步</td></tr><tr><td>同步</td><td>当一个任务需要另一个任务的结果时、线性流程</td><td>简单易理解、流程清晰</td><td>可能导致资源浪费和延迟</td><td>避免长时间的同步操作</td></tr><tr><td>异步</td><td>当任务之间无直接依赖关系、同时处理多个操作时</td><td>提高效率、无需等待</td><td>需要处理任务完成的回调或通知</td><td>要确保正确处理回调和错误</td></tr><tr><td>阻塞</td><td>当任务需要等待某资源或条件满足时</td><td>简单的编程模型、确保条件满足</td><td>导致程序或线程停滞、资源可能被浪费</td><td>尽量避免长时间的阻塞操作</td></tr><tr><td>非阻塞</td><td>当任务在等待某条件时仍需进行其他操作</td><td>响应迅速、资源高效利用</td><td>程序逻辑可能变得复杂</td><td>需要检查操作是否真的完成或资源是否真的可用</td></tr></tbody></table></div>
<h2 id="进程和线程">进程和线程<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#进程和线程" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<h3 id="进程">进程<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#进程" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<h4 id="进程是什么">进程是什么<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#进程是什么" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p><strong>进程是计算机中的程序关于某数据集的一次运行活动。<strong>它是</strong>系统资源分配的基本单位</strong>,并拥有独立的内存空间。进程具有自己的代码段、数据段和系统资源。</p>
<h4 id="为什么需要进程">为什么需要进程<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#为什么需要进程" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<ul>
<li>进程使操作系统可以<strong>多任务处理</strong>,同时执行多个程序。每个进程在其独立的地址空间中运行,互不干扰。</li>
<li>进程提供了应用<strong>程序执行的隔离环境</strong>,确保一个进程的故障不会影响到其他进程。</li>
<li>进程间的隔离也<strong>增强了系统的安全性</strong></li>
</ul>
<h4 id="进程间通信ipc队列管道">进程间通信IPC队列管道<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#进程间通信ipc队列管道" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<ul>
<li><strong>IPCInter-Process Communication</strong>:允许进程间相互通信和同步的技术。它包括信号、消息、共享内存等方法。</li>
<li><strong>队列</strong>是一个先进先出FIFO的数据结构可以用于进程间发送消息。</li>
<li><strong>管道</strong>:是一个双向通信的方法,允许一个进程的输出成为另一个进程的输入。管道通常用于父子进程间的通信。</li>
</ul>
<h3 id="线程">线程<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#线程" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<h4 id="线程是什么">线程是什么<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#线程是什么" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>线程是进程内部的执行单位,它是 <strong>CPU 调度和分派的基本单位。同一进程内的线程共享进程的资源</strong>,如内存、文件句柄等。但每个线程有其自己的运行栈和程序计数器。</p>
<h4 id="threading-模块"><code>threading</code> 模块<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#threading-模块" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>Python 的 <code>threading</code> 模块提供了低级线程 API使我们可以轻松创建和管理线程。以下是如何使用 <code>threading.Thread</code> 创建新线程的示例:</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> threading</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> print_numbers</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> range</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">):</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(i)</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">thread </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> threading.Thread(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">target</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">print_numbers)</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">thread.start()</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">thread.join()</span></span></code></pre></figure>
<h3 id="全局解释器锁gil">全局解释器锁GIL<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#全局解释器锁gil" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<h4 id="gil-是什么">GIL 是什么<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#gil-是什么" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>GIL 是 Python 解释器中的一个锁,它使得任何时候只有一个线程在执行。此锁仅存在于 CPython 解释器中。</p>
<blockquote>
<p>Python 官方社区计划在 3.12 以后版本逐步移除 GIL 锁。</p>
</blockquote>
<h4 id="gil-的存在原因">GIL 的存在原因<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#gil-的存在原因" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<ul>
<li>GIL 的主要目的是<strong>简化 CPythonPython 的标准解释器)的实现</strong>。由于多线程并发访问数据可能会导致数据损坏或不一致的情况GIL 可以防止这种情况的发生。</li>
<li>CPython 的内存管理不是线程安全的GIL 可以保证同时只有一个线程执行 Python 字节码,从而避免并发访问的问题。</li>
</ul>
<h4 id="gil-对多线程程序的影响">GIL 对多线程程序的影响<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#gil-对多线程程序的影响" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<ul>
<li>由于 GIL 的存在,<strong>多线程的 Python 程序不能充分利用多核心 CPU 的优势</strong>因为任何时候都只有一个线程在执行。这意味着在计算密集型任务上Python 的多线程并不总是有效的。</li>
<li>对于 I/O 密集型任务,多线程仍然是有效的,因为线程在等待 I/O 操作完成时可以释放 GIL这允许其他线程执行。</li>
<li>要真正充分利用多核心Python 开发者通常会使用进程级的并发(如 <code>multiprocessing</code> 模块)或使用其他没有 GIL 限制的 Python 实现,例如 Jython 或 IronPython。</li>
</ul>
<h2 id="python-并发库">Python 并发库<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#python-并发库" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<p>并发是一种技术可以使多个任务似乎在同一时间执行。Python 提供了多种方式来实现并发,以下是其中的一些主要方式。</p>
<h3 id="multiprocessing多进程"><code>multiprocessing</code>:多进程<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#multiprocessing多进程" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>Python 由于 GIL全局解释器锁的存在在多线程时并不能充分利用多核 CPU。为了避免 GIL 的限制,可以使用 <code>multiprocessing</code> 模块创建多个进程。</p>
<ul>
<li>
<p><strong>优点</strong>:可以充分利用多核 CPU、进程间内存是隔离的增加了安全性。</p>
</li>
<li>
<p>**缺点:**进程启动和通信相对较慢。</p>
</li>
</ul>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> multiprocessing </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Process</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> print_hello</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(name):</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Hello, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">name</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">!&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 输出Hello, world!</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">p </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Process(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">target</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">print_hello, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">args</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'world'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,))</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">p.start()</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">p.join()</span></span></code></pre></figure>
<h3 id="concurrentfutures线程池与进程池"><code>concurrent.futures</code>:线程池与进程池<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#concurrentfutures线程池与进程池" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p><code>concurrent.futures</code> 提供了高层次的异步执行接口,支持线程池和进程池。</p>
<h4 id="线程池">线程池<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#线程池" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>线程比进程轻量,创建和切换成本较低,但受到 GIL 的限制。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> concurrent.futures </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ThreadPoolExecutor</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 使用线程池</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">with</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ThreadPoolExecutor(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">max_workers</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> executor:</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> results </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> list</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(executor.map(print_hello, [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'world'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'python'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'asyncio'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]))</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # 输出(注意:线程执行的顺序可能是不确定的,以下只是一个可能的输出):</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Hello, world!</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Hello, python!</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Hello, asyncio!</span></span></code></pre></figure>
<h4 id="进程池">进程池<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#进程池" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> concurrent.futures </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ProcessPoolExecutor</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 使用进程池</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">with</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ProcessPoolExecutor(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">max_workers</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> executor:</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> results </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> list</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(executor.map(print_hello, [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'world'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'python'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'asyncio'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]))</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # 输出(进程的执行顺序可能是不确定的,以下只是一个可能的输出):</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Hello, world!</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Hello, python!</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Hello, asyncio!</span></span></code></pre></figure>
<h3 id="asyncio异步协程"><code>asyncio</code>:异步协程<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#asyncio异步协程" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p><code>asyncio</code> 是 Python 的异步编程框架,它使用事件循环驱动的协程来实现并发。</p>
<h4 id="事件循环">事件循环<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#事件循环" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>事件循环是异步编程的核心,用于调度和执行任务,确保异步任务的非阻塞执行。通过使用 <code>asyncio.get_event_loop()</code> 获取当前事件循环。</p>
<h4 id="协程">协程<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#协程" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>协程是 <code>asyncio</code> 的核心部分。使用 <code>async def</code> 定义协程,使用 <code>await</code> 在协程中等待另一个协程完成。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> asyncio</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Hello'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 输出Hello</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> asyncio.sleep(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'World'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 输出World</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">asyncio.run(main())</span></span></code></pre></figure>
<h3 id="高级异步特性">高级异步特性<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#高级异步特性" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<h4 id="异步生成器">异步生成器<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#异步生成器" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>可以在一个异步函数中产生多个值。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> asyncio</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> async_gen</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> range</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">):</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> asyncio.sleep(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> yield</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> i</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main_gen</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> value </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> async_gen():</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(value) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 输出0 1 2</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">asyncio.run(main())</span></span>
<span data-line> </span></code></pre></figure>
<h4 id="异步上下文管理器">异步上下文管理器<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#异步上下文管理器" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>允许使用 <code>async with</code> 语句进行异步资源管理。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> AsyncContextManager</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __aenter__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self):</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Entered the async context.&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 输出Entered the async context.</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> </span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __aexit__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, exc_type, exc, tb):</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Exited the async context.&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 输出Exited the async context.</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main_context</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> with</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> AsyncContextManager() </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> acm:</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Inside the async context.&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 输出Inside the async context.</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">asyncio.run(main_context())</span></span></code></pre></figure>
<p>Python 的并发库为开发者提供了多种选择,选择哪种方式取决于具体的应用需求和场景。不管选择哪种方式,重要的是理解其背后的工作原理和限制,这样可以更好地实现并发,并提高应用的性能。</p>
<h2 id="其他异步框架和库">其他异步框架和库<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#其他异步框架和库" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<h3 id="tornado">Tornado<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#tornado" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>Tornado 是一个 Python Web 服务器软件的开放源码版本。由于其非阻塞 I/O 设计它能够处理大量的长连接非常适用于长轮询、WebSockets 等网络协议。与传统的多线程和多进程服务器相比Tornado 使用单线程事件循环,可以高效地管理数千甚至数百万的并发连接。</p>
<h3 id="twisted">Twisted<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#twisted" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>Twisted 是一个事件驱动的网络引擎,用于构建各种网络应用。除了支持常见的网络协议如 HTTP、SMTP、POP3、FTP 等Twisted 还提供了其它功能如身份验证、SSL 和其他安全特性。Twisted 的设计理念是为开发者提供最大的灵活性,允许他们使用自己喜欢的工具和库。</p>
<h3 id="quart">Quart<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#quart" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>Quart 是一个基于 Python 的 ASGI Web 微框架。尽管它的 API 与 Flask 极为相似,但由于集成了 asyncio 的异步功能Quart 可以提供更高的响应速度。使用 Quart开发者可以无缝地将 Flask 代码迁移到一个异步环境中,从而充分利用现代硬件的并发性。</p>
<h2 id="锁信号量和同步原语">锁、信号量和同步原语<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#锁信号量和同步原语" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<h3 id="互斥锁-mutex">互斥锁 (Mutex)<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#互斥锁-mutex" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>**互斥锁确保特定资源或代码段在同一时间只能被一个线程访问。**例如,如果两个线程尝试同时更新一个共享的数据结构,没有适当的同步可能会导致数据损坏。互斥锁就是这样一个保护机制,确保资源的一致性和完整性。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> threading</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 创建一个互斥锁</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">mutex </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> threading.Lock()</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> update_data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # 获取锁</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> mutex.acquire()</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> </span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> try</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">TODO</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">: 更新共享资源</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> pass</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> finally</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # 释放锁</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> mutex.release()</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 启动多个线程来调用update_data</span></span></code></pre></figure>
<h3 id="读写锁">读写锁<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#读写锁" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>读写锁是一种特殊的锁,针对读者 - 作者问题而设计。当资源经常被读取但很少被修改时,读写锁是很有用的。在这种情况下,多个读线程可以并发访问资源,但写线程会阻塞所有其他线程,确保在写操作期间资源的完整性。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> rwlock </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> RWLock</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">rwlock </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> RWLock()</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> read_data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> with</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> rwlock.r_lock():</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">TODO</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">: 读取数据</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> pass</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> write_data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> with</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> rwlock.w_lock():</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">TODO</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">: 修改数据</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> pass</span></span></code></pre></figure>
<h3 id="信号量-semaphore">信号量 (Semaphore)<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#信号量-semaphore" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>与互斥锁不同,信号量允许多个线程并发访问资源,但是数量是有限的。例如,如果你有一个包含 5 个数据库连接的连接池,你可以使用一个计数为 5 的信号量来确保任何时候最多只有 5 个线程使用这些连接。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> threading</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 创建一个信号量最多允许5个线程同时访问</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">semaphore </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> threading.Semaphore(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> access_resource</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # 获取信号量</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> semaphore.acquire()</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> try</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">TODO</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">: 访问资源</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> pass</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> finally</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # 释放信号量</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> semaphore.release()</span></span></code></pre></figure>
<h3 id="条件变量">条件变量<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#条件变量" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>条件变量是用于线程之间的同步,特别是当线程需要等待特定条件成立时。例如,一个线程可能会等待一个队列非空才开始处理。使用条件变量,这个线程可以在队列为空时进入休眠,并在其他线程向队列添加项时被唤醒。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> threading</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">condition </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> threading.Condition()</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">queue </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> []</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> produce_item</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> with</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> condition:</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">TODO</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">: 生产一个项目并添加到队列</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> queue.append(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;item&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # 唤醒等待队列非空的线程</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> condition.notify()</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> consume_item</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> with</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> condition:</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> while</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> not</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> queue:</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # 如果队列为空,则等待</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> condition.wait()</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">TODO</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">: 从队列中消费一个项目</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> item </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> queue.pop()</span></span></code></pre></figure>
<h2 id="设计模式与最佳实践">设计模式与最佳实践<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#设计模式与最佳实践" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<h3 id="生产者---消费者模式">生产者 - 消费者模式<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#生产者---消费者模式" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>生产者 - 消费者模式是一个并发模式,其中一个或多个生产者线程创建项目,而一个或多个消费者线程处理这些项目。这种模式可以有效地分离数据生产和数据处理,通常使用队列来传输数据。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> threading</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> queue</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">q </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> queue.Queue()</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> producer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> while</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> item </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> produce_item()</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> q.put(item)</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> consumer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> while</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> item </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> q.get()</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> process_item(item)</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> produce_item</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">TODO</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">: 生产数据</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;item&quot;</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> process_item</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(item):</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">TODO</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">: 处理数据</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> pass</span></span></code></pre></figure>
<h3 id="发布者---订阅者模式">发布者 - 订阅者模式<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#发布者---订阅者模式" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>发布者 - 订阅者模式是一种通知模式,其中发布者发送通知,而订阅者(可以有多个)接收通知。这种模式适用于需要广播信息的场景。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Publisher</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __init__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self):</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.subscribers </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> set</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> register</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, who):</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.subscribers.add(who)</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> unregister</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, who):</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.subscribers.discard(who)</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> dispatch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, message):</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> subscriber </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.subscribers:</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> subscriber.update(message)</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Subscriber</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> update</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, message):</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">TODO</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">: 处理消息</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(message)</span></span></code></pre></figure>
<h3 id="避免死锁资源竞争线程安全的设计">避免死锁、资源竞争、线程安全的设计<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#避免死锁资源竞争线程安全的设计" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<ul>
<li><strong>避免死锁</strong>:确保线程按照一致的顺序请求资源,使用锁的超时功能,或使用死锁检测工具。</li>
<li><strong>资源竞争</strong>:使用锁、信号量等同步原语确保对共享资源的有序访问。</li>
<li><strong>线程安全的设计</strong>:避免修改共享数据,或确保使用适当的同步机制来保护数据。考虑使用不可变数据结构和线程局部存储。</li>
</ul>
<h2 id="实际应用与性能分析">实际应用与性能分析<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#实际应用与性能分析" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<h3 id="选择适当的并发或并行工具">选择适当的并发或并行工具<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#选择适当的并发或并行工具" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<ul>
<li><strong>任务性质</strong>I/O 密集型任务可以从多线程中受益,而 CPU 密集型任务可能更适合多进程或异步编程。</li>
<li><strong>共享数据</strong>:如果需要大量共享数据,则线程可能是一个好选择;否则,多进程可能更简单。</li>
</ul>
<h3 id="性能分析工具">性能分析工具<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#性能分析工具" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<h4 id="cprofile"><code>cProfile</code><a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#cprofile" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p><code>cProfile</code> 是 Python 的一个内置性能分析工具。它测量函数调用的频率和执行时间,对于查找瓶颈和代码优化尤为有用。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> cProfile</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> my_function</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">TODO</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">: 一些代码</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> pass</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">cProfile.run(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'my_function()'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></figure>
<h4 id="memory_profiler"><code>memory_profiler</code><a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#memory_profiler" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p><code>memory_profiler</code> 是一个用于监控 Python 程序内存使用的工具,它可以为你提供关于对象的内存消耗等信息。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> memory_profiler </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> profile</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@profile</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> memory_test_func</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> range</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">100000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)]</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> a</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">memory_test_func()</span></span></code></pre></figure>
<h4 id="timeit"><code>timeit</code><a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#timeit" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p><code>timeit</code> 是一个专门用于<strong>测量小代码片段执行时间</strong>的工具。它的优势在于,它会多次运行指定的代码,以获取更精确的平均运行时间。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> timeit</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> code_to_test</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> sum</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">range</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">))</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 该方法会运行 `code_to_test` 函数 1000 次,并返回总运行时间</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">elapsed_time </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> timeit.timeit(code_to_test, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">number</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(elapsed_time)</span></span>
<span data-line> </span></code></pre></figure>
<h4 id="timeprocess_time"><code>time.process_time</code><a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#timeprocess_time" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>这个函数返回<strong>当前进程运行的 CPU 时间,而不是实际经过的时间</strong>,它可以帮助我们忽略其他进程或线程对测量结果的影响。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="Python" data-theme="github-light github-dark"><code data-language="Python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span>import time</span></span>
<span data-line> </span>
<span data-line><span>start = time.process_time()</span></span>
<span data-line> </span>
<span data-line><span># 要测量的代码</span></span>
<span data-line><span>result = sum(range(1000000))</span></span>
<span data-line> </span>
<span data-line><span>end = time.process_time()</span></span>
<span data-line><span>print(f&quot;Time taken: {end - start} seconds&quot;)</span></span></code></pre></figure>
<h4 id="timeperf_counter"><code>time.perf_counter</code><a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#timeperf_counter" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p><code>time.perf_counter</code> 是一个高分辨率的计时器,适合对代码段进行基准测试,并且还会计算系统的休眠时间。</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="python" data-theme="github-light github-dark"><code data-language="python" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> time</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">start </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> time.perf_counter()</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 要测量的代码</span></span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">result </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> sum</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">range</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1000000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">))</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">end </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> time.perf_counter()</span></span>
<span data-line><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Time taken: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">end </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> start</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> seconds&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></figure>
<h3 id="优化策略">优化策略<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#优化策略" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<ul>
<li><strong>减少锁的使用</strong>:频繁使用锁可能导致线程等待,降低整体性能。尝试减少锁的持有时间或使用更细粒度的锁,以减少资源争用。</li>
<li><strong>使用线程池和连接池</strong>:通过预先创建和复用线程或数据库连接,可以避免频繁地创建和销毁资源,这可以显著提高性能。</li>
<li><strong>优化数据结构和算法</strong>:选择正确的数据结构和算法可以极大地提高代码的运行效率。定期审查代码,确保它是最优的。</li>
<li><strong>利用缓存</strong>:将常用的计算结果或查询结果缓存起来,可以避免重复的、消耗性能的操作。</li>
<li><strong>延迟加载</strong>:只有在真正需要时再加载数据,这样可以避免不必要的计算和资源使用。</li>
</ul></article><hr/><div class="page-footer"></div></div><div class="right sidebar"><div class="graph"><h3>关系图谱</h3><div class="graph-outer"><div id="graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:1,&quot;scale&quot;:1.1,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[],&quot;focusOnHover&quot;:false}"></div><button id="global-graph-icon" aria-label="Global Graph"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 55 55" fill="currentColor" xml:space="preserve"><path d="M49,0c-3.309,0-6,2.691-6,6c0,1.035,0.263,2.009,0.726,2.86l-9.829,9.829C32.542,17.634,30.846,17,29,17
s-3.542,0.634-4.898,1.688l-7.669-7.669C16.785,10.424,17,9.74,17,9c0-2.206-1.794-4-4-4S9,6.794,9,9s1.794,4,4,4
c0.74,0,1.424-0.215,2.019-0.567l7.669,7.669C21.634,21.458,21,23.154,21,25s0.634,3.542,1.688,4.897L10.024,42.562
C8.958,41.595,7.549,41,6,41c-3.309,0-6,2.691-6,6s2.691,6,6,6s6-2.691,6-6c0-1.035-0.263-2.009-0.726-2.86l12.829-12.829
c1.106,0.86,2.44,1.436,3.898,1.619v10.16c-2.833,0.478-5,2.942-5,5.91c0,3.309,2.691,6,6,6s6-2.691,6-6c0-2.967-2.167-5.431-5-5.91
v-10.16c1.458-0.183,2.792-0.759,3.898-1.619l7.669,7.669C41.215,39.576,41,40.26,41,41c0,2.206,1.794,4,4,4s4-1.794,4-4
s-1.794-4-4-4c-0.74,0-1.424,0.215-2.019,0.567l-7.669-7.669C36.366,28.542,37,26.846,37,25s-0.634-3.542-1.688-4.897l9.665-9.665
C46.042,11.405,47.451,12,49,12c3.309,0,6-2.691,6-6S52.309,0,49,0z M11,9c0-1.103,0.897-2,2-2s2,0.897,2,2s-0.897,2-2,2
S11,10.103,11,9z M6,51c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S8.206,51,6,51z M33,49c0,2.206-1.794,4-4,4s-4-1.794-4-4
s1.794-4,4-4S33,46.794,33,49z M29,31c-3.309,0-6-2.691-6-6s2.691-6,6-6s6,2.691,6,6S32.309,31,29,31z M47,41c0,1.103-0.897,2-2,2
s-2-0.897-2-2s0.897-2,2-2S47,39.897,47,41z M49,10c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S51.206,10,49,10z"></path></svg></button></div><div id="global-graph-outer"><div id="global-graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:-1,&quot;scale&quot;:0.9,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[],&quot;focusOnHover&quot;:true}"></div></div></div><div class="toc desktop-only"><button type="button" id="toc" class aria-controls="toc-content" aria-expanded="true"><h3>目录</h3><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="fold"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div id="toc-content" class><ul class="overflow"><li class="depth-0"><a href="#基础概念" data-for="基础概念">基础概念</a></li><li class="depth-1"><a href="#并发与并行" data-for="并发与并行">并发与并行</a></li><li class="depth-1"><a href="#同步与异步" data-for="同步与异步">同步与异步</a></li><li class="depth-1"><a href="#阻塞与非阻塞" data-for="阻塞与非阻塞">阻塞与非阻塞</a></li><li class="depth-1"><a href="#特性对比" data-for="特性对比">特性对比</a></li><li class="depth-0"><a href="#进程和线程" data-for="进程和线程">进程和线程</a></li><li class="depth-1"><a href="#进程" data-for="进程">进程</a></li><li class="depth-1"><a href="#线程" data-for="线程">线程</a></li><li class="depth-1"><a href="#全局解释器锁gil" data-for="全局解释器锁gil">全局解释器锁GIL</a></li><li class="depth-0"><a href="#python-并发库" data-for="python-并发库">Python 并发库</a></li><li class="depth-1"><a href="#multiprocessing多进程" data-for="multiprocessing多进程">multiprocessing多进程</a></li><li class="depth-1"><a href="#concurrentfutures线程池与进程池" data-for="concurrentfutures线程池与进程池">concurrent.futures线程池与进程池</a></li><li class="depth-1"><a href="#asyncio异步协程" data-for="asyncio异步协程">asyncio异步协程</a></li><li class="depth-1"><a href="#高级异步特性" data-for="高级异步特性">高级异步特性</a></li><li class="depth-0"><a href="#其他异步框架和库" data-for="其他异步框架和库">其他异步框架和库</a></li><li class="depth-1"><a href="#tornado" data-for="tornado">Tornado</a></li><li class="depth-1"><a href="#twisted" data-for="twisted">Twisted</a></li><li class="depth-1"><a href="#quart" data-for="quart">Quart</a></li><li class="depth-0"><a href="#锁信号量和同步原语" data-for="锁信号量和同步原语">锁、信号量和同步原语</a></li><li class="depth-1"><a href="#互斥锁-mutex" data-for="互斥锁-mutex">互斥锁 (Mutex)</a></li><li class="depth-1"><a href="#读写锁" data-for="读写锁">读写锁</a></li><li class="depth-1"><a href="#信号量-semaphore" data-for="信号量-semaphore">信号量 (Semaphore)</a></li><li class="depth-1"><a href="#条件变量" data-for="条件变量">条件变量</a></li><li class="depth-0"><a href="#设计模式与最佳实践" data-for="设计模式与最佳实践">设计模式与最佳实践</a></li><li class="depth-1"><a href="#生产者---消费者模式" data-for="生产者---消费者模式">生产者 - 消费者模式</a></li><li class="depth-1"><a href="#发布者---订阅者模式" data-for="发布者---订阅者模式">发布者 - 订阅者模式</a></li><li class="depth-1"><a href="#避免死锁资源竞争线程安全的设计" data-for="避免死锁资源竞争线程安全的设计">避免死锁、资源竞争、线程安全的设计</a></li><li class="depth-0"><a href="#实际应用与性能分析" data-for="实际应用与性能分析">实际应用与性能分析</a></li><li class="depth-1"><a href="#选择适当的并发或并行工具" data-for="选择适当的并发或并行工具">选择适当的并发或并行工具</a></li><li class="depth-1"><a href="#性能分析工具" data-for="性能分析工具">性能分析工具</a></li><li class="depth-1"><a href="#优化策略" data-for="优化策略">优化策略</a></li></ul></div></div><div class="explorer mobile-only"><button type="button" id="explorer" data-behavior="collapse" data-collapsed="collapsed" data-savestate="true" data-tree="[{&quot;path&quot;:&quot;Personal&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2018&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2020&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2021&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2022&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2023&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2024&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/个人成长&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/医学健康&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/历史&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/哲学宗教&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/心理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/政治军事&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/教育学习&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/文学&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/生活百科&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/社会文化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/科学技术&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/经济理财&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/艺术&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/计算机&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W34&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W35&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W36&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W37&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W38&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W39&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W41&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W42&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W43&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W44&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W45&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W46&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W47&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W48&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W49&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2022/W50&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W2&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W3&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W5&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W6&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W7&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W8&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W10&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W12&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W14&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W16&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W22&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W23&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W24&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W25&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W26&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W31&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W32&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W33&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W35&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W36&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W37&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W40&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W45&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W46&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W48&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W49&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2023/W50&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W8&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W10&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W11&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W12&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W14&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W16&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W17&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W22&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W23&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W24&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W29&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W30&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W33&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Journal/2024/W35&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Company&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Company/数字化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Company/数字化/规范&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/data-engineer&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/full-stack&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/full-stack/基础&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/full-stack/工具&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/full-stack/文化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/权益保障&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/求职经验&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/简历攻略&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/职业规划&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/职场心得&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/薪酬攻略&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/roadmap/面试法则&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Professional/Work/sre-engineer&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences/English&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences/Government&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences/Government/中国&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences/Government/中国/标准&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;SocialSciences/Government/中国/法律&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/CloudService&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/CloudService/基础&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork/Nginx&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork/公共服务&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork/应用服务&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork/网络协议&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerNetwork/网络基础&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/信息安全&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/信息安全/OpenPGP&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/密码学&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/用户安全&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/用户安全/权限设计&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/用户安全/用户鉴权&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/系统安全&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/系统安全/防火墙&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/网络安全&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/网络安全/OpenSSH&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerSecurity/网络安全/OpenSSL&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ComputerStorage&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/DatabaseSystem&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/DatabaseSystem/PostgreSQL&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/DatabaseSystem/SQL-语言&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/DatabaseSystem/基础&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/命令行工具&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/命令行工具/PowerShell&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/命令行工具/Shell&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/命令行工具/Vim&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/开源指南&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/文本处理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/版本控制&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/版本控制/Git&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/版本控制/Git/入门&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/GettingStarted/版本控制/Git/进阶&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Automation&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Docker&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Docker/基础&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Docker/进阶&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Docker/高级&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/1.文化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/2.安装&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/3.基础操作&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/4.系统管理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/5.安全配置&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/6.网络管理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Linux/7.存储管理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Virtualization&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Virtualization/1.虚拟化概述&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Virtualization/2.KVM虚拟化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Windows&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/OperatingSystem/Windows/文化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/入门&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/文化&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块/WEB开发&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块/数据处理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块/文本处理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块/系统交互&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/模块/网络处理&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/进阶&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/项目&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/项目/虚拟环境&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/ProgrammingLanguage/Python/项目/风格指南&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/SoftwareEngineering&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/SoftwareEngineering/CI-and-CD&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/SoftwareEngineering/协作规范&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/SoftwareEngineering/技术文档&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Technology/StructuresAlgorithms&quot;,&quot;collapsed&quot;:true}]" aria-controls="explorer-content" aria-expanded="false"><h2>探索</h2><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="fold"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div id="explorer-content"><ul class="overflow" id="explorer-ul"><li><div class="folder-outer open"><ul style="padding-left:0;" class="content" data-folderul><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal"><button class="folder-button"><span class="folder-title">Personal</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog"><button class="folder-button"><span class="folder-title">Blog</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2018"><button class="folder-button"><span class="folder-title">2018</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2018"><li><a href="../../../../Personal/Blog/2018/11月28日晚-星期三-霾" data-for="Personal/Blog/2018/11月28日晚-星期三-霾">11月28日 晚 星期三 霾</a></li><li><a href="../../../../Personal/Blog/2018/BombSquad-炸弹人小分队" data-for="Personal/Blog/2018/BombSquad-炸弹人小分队">BombSquad-炸弹人小分队</a></li><li><a href="../../../../Personal/Blog/2018/如何免费创建一个属于自己的网站" data-for="Personal/Blog/2018/如何免费创建一个属于自己的网站">如何免费创建一个属于自己的网站</a></li><li><a href="../../../../Personal/Blog/2018/英雄联盟-S8-全球总决赛" data-for="Personal/Blog/2018/英雄联盟-S8-全球总决赛">英雄联盟 S8 全球总决赛</a></li><li><a href="../../../../Personal/Blog/2018/螺蛳粉" data-for="Personal/Blog/2018/螺蛳粉">螺蛳粉</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2020"><button class="folder-button"><span class="folder-title">2020</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2020"><li><a href="../../../../Personal/Blog/2020/Don`t-Starve-饥荒" data-for="Personal/Blog/2020/Don`t-Starve-饥荒">Don't Starve-饥荒</a></li><li><a href="../../../../Personal/Blog/2020/中国传统历法" data-for="Personal/Blog/2020/中国传统历法">中国传统历法</a></li><li><a href="../../../../Personal/Blog/2020/初号机,起飞!" data-for="Personal/Blog/2020/初号机,起飞!">初号机,起飞!</a></li><li><a href="../../../../Personal/Blog/2020/吉普赛满天星" data-for="Personal/Blog/2020/吉普赛满天星">吉普赛满天星</a></li><li><a href="../../../../Personal/Blog/2020/夏日花记" data-for="Personal/Blog/2020/夏日花记">夏日花记</a></li><li><a href="../../../../Personal/Blog/2020/幸福的事情都是需要等待的" data-for="Personal/Blog/2020/幸福的事情都是需要等待的">幸福的事情都是需要等待的</a></li><li><a href="../../../../Personal/Blog/2020/开源软件之道" data-for="Personal/Blog/2020/开源软件之道">开源软件之道</a></li><li><a href="../../../../Personal/Blog/2020/我的小羊肖恩" data-for="Personal/Blog/2020/我的小羊肖恩">我的小羊肖恩</a></li><li><a href="../../../../Personal/Blog/2020/数据恢复杂谈" data-for="Personal/Blog/2020/数据恢复杂谈">数据恢复杂谈</a></li><li><a href="../../../../Personal/Blog/2020/注定不平凡的一年" data-for="Personal/Blog/2020/注定不平凡的一年">注定不平凡的一年</a></li><li><a href="../../../../Personal/Blog/2020/浅谈个人服务器架构" data-for="Personal/Blog/2020/浅谈个人服务器架构">浅谈个人服务器架构</a></li><li><a href="../../../../Personal/Blog/2020/球鞋日记" data-for="Personal/Blog/2020/球鞋日记">球鞋日记</a></li><li><a href="../../../../Personal/Blog/2020/記拾月" data-for="Personal/Blog/2020/記拾月">記拾月</a></li><li><a href="../../../../Personal/Blog/2020/长安游记" data-for="Personal/Blog/2020/长安游记">长安游记</a></li><li><a href="../../../../Personal/Blog/2020/骑行在路上" data-for="Personal/Blog/2020/骑行在路上">骑行在路上</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2021"><button class="folder-button"><span class="folder-title">2021</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2021"><li><a href="../../../../Personal/Blog/2021/2021" data-for="Personal/Blog/2021/2021">2021</a></li><li><a href="../../../../Personal/Blog/2021/VIVO-IQOO-Neo3-开箱测评" data-for="Personal/Blog/2021/VIVO-IQOO-Neo3-开箱测评">VIVO IQOO Neo3 开箱测评</a></li><li><a href="../../../../Personal/Blog/2021/上有天堂、下有苏杭" data-for="Personal/Blog/2021/上有天堂、下有苏杭">上有天堂、下有苏杭</a></li><li><a href="../../../../Personal/Blog/2021/我开发的第一款软件" data-for="Personal/Blog/2021/我开发的第一款软件">我开发的第一款软件</a></li><li><a href="../../../../Personal/Blog/2021/我站立的地方是中国" data-for="Personal/Blog/2021/我站立的地方是中国">我站立的地方是中国</a></li><li><a href="../../../../Personal/Blog/2021/我还在……" data-for="Personal/Blog/2021/我还在……">我还在……</a></li><li><a href="../../../../Personal/Blog/2021/星光不问赶路人" data-for="Personal/Blog/2021/星光不问赶路人">星光不问赶路人</a></li><li><a href="../../../../Personal/Blog/2021/济南呀济南的泰山之旅" data-for="Personal/Blog/2021/济南呀济南的泰山之旅">济南呀济南的泰山之旅</a></li><li><a href="../../../../Personal/Blog/2021/涝疫结合" data-for="Personal/Blog/2021/涝疫结合">涝疫结合</a></li><li><a href="../../../../Personal/Blog/2021/申请-Jetbrains-开源项目授权" data-for="Personal/Blog/2021/申请-Jetbrains-开源项目授权">申请 Jetbrains 开源项目授权</a></li><li><a href="../../../../Personal/Blog/2021/真·长安游记" data-for="Personal/Blog/2021/真·长安游记">真·长安游记</a></li><li><a href="../../../../Personal/Blog/2021/记拾月" data-for="Personal/Blog/2021/记拾月">记拾月</a></li><li><a href="../../../../Personal/Blog/2021/贰号机、落幕" data-for="Personal/Blog/2021/贰号机、落幕">贰号机、落幕</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2022"><button class="folder-button"><span class="folder-title">2022</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2022"><li><a href="../../../../Personal/Blog/2022/「引用」博客的本质是电线杆子" data-for="Personal/Blog/2022/「引用」博客的本质是电线杆子">「引用」博客的本质是电线杆子</a></li><li><a href="../../../../Personal/Blog/2022/2022" data-for="Personal/Blog/2022/2022">2022</a></li><li><a href="../../../../Personal/Blog/2022/Halo-主题-Redemption-首发版" data-for="Personal/Blog/2022/Halo-主题-Redemption-首发版">Halo 主题 Redemption 首发版</a></li><li><a href="../../../../Personal/Blog/2022/Hello-Halo" data-for="Personal/Blog/2022/Hello-Halo">Hello Halo</a></li><li><a href="../../../../Personal/Blog/2022/Redemption" data-for="Personal/Blog/2022/Redemption">Redemption</a></li><li><a href="../../../../Personal/Blog/2022/Redemption-主题-0.2.1-版本" data-for="Personal/Blog/2022/Redemption-主题-0.2.1-版本">Redemption 主题 0.2.1 版本</a></li><li><a href="../../../../Personal/Blog/2022/一线城市拥有一亩三分地是什么体验" data-for="Personal/Blog/2022/一线城市拥有一亩三分地是什么体验">一线城市拥有一亩三分地是什么体验</a></li><li><a href="../../../../Personal/Blog/2022/三步为你博客文章分析情感关键字" data-for="Personal/Blog/2022/三步为你博客文章分析情感关键字">三步为你博客文章分析情感关键字</a></li><li><a href="../../../../Personal/Blog/2022/不要在饿的时候吃螺蛳粉!" data-for="Personal/Blog/2022/不要在饿的时候吃螺蛳粉!">不要在饿的时候吃螺蛳粉!</a></li><li><a href="../../../../Personal/Blog/2022/习惯养成第一步" data-for="Personal/Blog/2022/习惯养成第一步">习惯养成第一步</a></li><li><a href="../../../../Personal/Blog/2022/人在囧途——青海湖" data-for="Personal/Blog/2022/人在囧途——青海湖">人在囧途——青海湖</a></li><li><a href="../../../../Personal/Blog/2022/人格类型测试" data-for="Personal/Blog/2022/人格类型测试">人格类型测试</a></li><li><a href="../../../../Personal/Blog/2022/你还记得曾经的梦想么?" data-for="Personal/Blog/2022/你还记得曾经的梦想么?">你还记得曾经的梦想么?</a></li><li><a href="../../../../Personal/Blog/2022/使用-Docusaurus-搭建优秀个人wiki" data-for="Personal/Blog/2022/使用-Docusaurus-搭建优秀个人wiki">使用 Docusaurus 搭建优秀个人wiki</a></li><li><a href="../../../../Personal/Blog/2022/关于感情的事情" data-for="Personal/Blog/2022/关于感情的事情">关于感情的事情</a></li><li><a href="../../../../Personal/Blog/2022/关于花" data-for="Personal/Blog/2022/关于花">关于花</a></li><li><a href="../../../../Personal/Blog/2022/关于郑州的互联网记忆" data-for="Personal/Blog/2022/关于郑州的互联网记忆">关于郑州的互联网记忆</a></li><li><a href="../../../../Personal/Blog/2022/再游嵩山" data-for="Personal/Blog/2022/再游嵩山">再游嵩山</a></li><li><a href="../../../../Personal/Blog/2022/最近在折腾什么……" data-for="Personal/Blog/2022/最近在折腾什么……">最近在折腾什么……</a></li><li><a href="../../../../Personal/Blog/2022/最近的生活" data-for="Personal/Blog/2022/最近的生活">最近的生活</a></li><li><a href="../../../../Personal/Blog/2022/写十万字的博客是一种什么感觉" data-for="Personal/Blog/2022/写十万字的博客是一种什么感觉">写十万字的博客是一种什么感觉</a></li><li><a href="../../../../Personal/Blog/2022/写博客的正确姿势---先行版" data-for="Personal/Blog/2022/写博客的正确姿势---先行版">写博客的正确姿势 - 先行版</a></li><li><a href="../../../../Personal/Blog/2022/写博客的正确姿势---测试版" data-for="Personal/Blog/2022/写博客的正确姿势---测试版">写博客的正确姿势 - 测试版</a></li><li><a href="../../../../Personal/Blog/2022/原点" data-for="Personal/Blog/2022/原点">原点</a></li><li><a href="../../../../Personal/Blog/2022/如何免费获得-Jetbrains-正版授权" data-for="Personal/Blog/2022/如何免费获得-Jetbrains-正版授权">如何免费获得 Jetbrains 正版授权</a></li><li><a href="../../../../Personal/Blog/2022/我是关系户" data-for="Personal/Blog/2022/我是关系户">我是关系户</a></li><li><a href="../../../../Personal/Blog/2022/我要拔智齿!!!" data-for="Personal/Blog/2022/我要拔智齿!!!">我要拔智齿!!!</a></li><li><a href="../../../../Personal/Blog/2022/数字文化遗产" data-for="Personal/Blog/2022/数字文化遗产">数字文化遗产</a></li><li><a href="../../../../Personal/Blog/2022/新冠笔记" data-for="Personal/Blog/2022/新冠笔记">新冠笔记</a></li><li><a href="../../../../Personal/Blog/2022/新手村村长" data-for="Personal/Blog/2022/新手村村长">新手村村长</a></li><li><a href="../../../../Personal/Blog/2022/是微风、是晚霞、是来日方长" data-for="Personal/Blog/2022/是微风、是晚霞、是来日方长">是微风、是晚霞、是来日方长</a></li><li><a href="../../../../Personal/Blog/2022/月季到了" data-for="Personal/Blog/2022/月季到了">月季到了</a></li><li><a href="../../../../Personal/Blog/2022/浅谈一下自己折腾的网站" data-for="Personal/Blog/2022/浅谈一下自己折腾的网站">浅谈一下自己折腾的网站</a></li><li><a href="../../../../Personal/Blog/2022/番茄开花啦-~" data-for="Personal/Blog/2022/番茄开花啦-~">番茄开花啦 ~</a></li><li><a href="../../../../Personal/Blog/2022/种下了一些瓜果蔬菜" data-for="Personal/Blog/2022/种下了一些瓜果蔬菜">种下了一些瓜果蔬菜</a></li><li><a href="../../../../Personal/Blog/2022/罪恶应该被遗传么" data-for="Personal/Blog/2022/罪恶应该被遗传么">罪恶应该被遗传么?</a></li><li><a href="../../../../Personal/Blog/2022/自律的痛苦······" data-for="Personal/Blog/2022/自律的痛苦······">自律的痛苦······</a></li><li><a href="../../../../Personal/Blog/2022/论成年人的睡眠" data-for="Personal/Blog/2022/论成年人的睡眠">论成年人的睡眠</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」">谈谈我的「数字文具盒」</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---NextCloud" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---NextCloud">谈谈我的「数字文具盒」 - NextCloud</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---Obsidian" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---Obsidian">谈谈我的「数字文具盒」 - Obsidian</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---心得体会" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---心得体会">谈谈我的「数字文具盒」 - 心得体会</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---数字基建" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---数字基建">谈谈我的「数字文具盒」 - 数字基建</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---生产力工具(上)" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---生产力工具(上)">谈谈我的「数字文具盒」 - 生产力工具(上)</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---生产力工具(下)" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---生产力工具(下)">谈谈我的「数字文具盒」 - 生产力工具(下)</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---番外篇" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---番外篇">谈谈我的「数字文具盒」 - 番外篇</a></li><li><a href="../../../../Personal/Blog/2022/谈谈我的「数字文具盒」---运行平台" data-for="Personal/Blog/2022/谈谈我的「数字文具盒」---运行平台">谈谈我的「数字文具盒」 - 运行平台</a></li><li><a href="../../../../Personal/Blog/2022/这个周末" data-for="Personal/Blog/2022/这个周末">这个周末</a></li><li><a href="../../../../Personal/Blog/2022/通货膨胀的猪" data-for="Personal/Blog/2022/通货膨胀的猪">通货膨胀的猪</a></li><li><a href="../../../../Personal/Blog/2022/闭门锁网" data-for="Personal/Blog/2022/闭门锁网">闭门锁网</a></li><li><a href="../../../../Personal/Blog/2022/非黑即白" data-for="Personal/Blog/2022/非黑即白">非黑即白</a></li><li><a href="../../../../Personal/Blog/2022/首页加载速度优化方案" data-for="Personal/Blog/2022/首页加载速度优化方案">首页加载速度优化方案</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2023"><button class="folder-button"><span class="folder-title">2023</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2023"><li><a href="../../../../Personal/Blog/2023/2023-年度微信读书报告" data-for="Personal/Blog/2023/2023-年度微信读书报告">2023 年度微信读书报告</a></li><li><a href="../../../../Personal/Blog/2023/Docusaurus-搭建" data-for="Personal/Blog/2023/Docusaurus-搭建">Docusaurus 搭建</a></li><li><a href="../../../../Personal/Blog/2023/Obsidian-使用-Templater-插件的个性化脚本" data-for="Personal/Blog/2023/Obsidian-使用-Templater-插件的个性化脚本">Obsidian 使用 Templater 插件的个性化脚本</a></li><li><a href="../../../../Personal/Blog/2023/YubiKey-漂流记" data-for="Personal/Blog/2023/YubiKey-漂流记">YubiKey 历险记</a></li><li><a href="../../../../Personal/Blog/2023/不要把幸福建立在别人的痛苦之上" data-for="Personal/Blog/2023/不要把幸福建立在别人的痛苦之上">不要把幸福建立在别人的痛苦之上</a></li><li><a href="../../../../Personal/Blog/2023/为什么不推开那扇门?" data-for="Personal/Blog/2023/为什么不推开那扇门?">为什么不推开那扇门?</a></li><li><a href="../../../../Personal/Blog/2023/你愿意嫁给自己么?" data-for="Personal/Blog/2023/你愿意嫁给自己么?">你愿意嫁给自己么</a></li><li><a href="../../../../Personal/Blog/2023/最近半年的生活" data-for="Personal/Blog/2023/最近半年的生活">最近半年的生活</a></li><li><a href="../../../../Personal/Blog/2023/写博客的正确姿势" data-for="Personal/Blog/2023/写博客的正确姿势">写博客的正确姿势</a></li><li><a href="../../../../Personal/Blog/2023/唯有热爱可抵岁月漫长" data-for="Personal/Blog/2023/唯有热爱可抵岁月漫长">唯有热爱、可抵岁月漫长</a></li><li><a href="../../../../Personal/Blog/2023/回首-2022-展望-2023" data-for="Personal/Blog/2023/回首-2022-展望-2023">回首 2022 展望 2023</a></li><li><a href="../../../../Personal/Blog/2023/大学回忆录" data-for="Personal/Blog/2023/大学回忆录">大学回忆录</a></li><li><a href="../../../../Personal/Blog/2023/如何不写错别字!" data-for="Personal/Blog/2023/如何不写错别字!">如何不写错别字!</a></li><li><a href="../../../../Personal/Blog/2023/如何拍好一张照片" data-for="Personal/Blog/2023/如何拍好一张照片">如何拍好一张照片</a></li><li><a href="../../../../Personal/Blog/2023/家里的三块地" data-for="Personal/Blog/2023/家里的三块地">家里的三块地</a></li><li><a href="../../../../Personal/Blog/2023/岁月是把猪饲料,把我喂的嘎嘎胖" data-for="Personal/Blog/2023/岁月是把猪饲料,把我喂的嘎嘎胖">岁月是把猪饲料,把我喂的嘎嘎胖</a></li><li><a href="../../../../Personal/Blog/2023/拾月游记" data-for="Personal/Blog/2023/拾月游记">拾月游记</a></li><li><a href="../../../../Personal/Blog/2023/揭晓你的博客一年之最,尽在-EndOfYear" data-for="Personal/Blog/2023/揭晓你的博客一年之最,尽在-EndOfYear">揭晓你的博客一年之最,尽在 EndOfYear</a></li><li><a href="../../../../Personal/Blog/2023/早起、阅读、写作、运动、冥想" data-for="Personal/Blog/2023/早起、阅读、写作、运动、冥想">早起、冥想、阅读、写作、运动</a></li><li><a href="../../../../Personal/Blog/2023/浅尝-Gitea-的-Actions" data-for="Personal/Blog/2023/浅尝-Gitea-的-Actions">浅尝 Gitea 的 Actions</a></li><li><a href="../../../../Personal/Blog/2023/独立生活能力清单" data-for="Personal/Blog/2023/独立生活能力清单">独立生活能力清单</a></li><li><a href="../../../../Personal/Blog/2023/电脑坏了,我换了-Ubuntu" data-for="Personal/Blog/2023/电脑坏了,我换了-Ubuntu">电脑坏了,我换了 Ubuntu</a></li><li><a href="../../../../Personal/Blog/2023/看-V2Ex-的-ChatGPT-老哥浅谈办公室政治" data-for="Personal/Blog/2023/看-V2Ex-的-ChatGPT-老哥浅谈办公室政治">看 V2Ex 的 ChatGPT 老哥浅谈办公室政治</a></li><li><a href="../../../../Personal/Blog/2023/破万卷书,行万里路!" data-for="Personal/Blog/2023/破万卷书,行万里路!">破万卷书,行万里路!</a></li><li><a href="../../../../Personal/Blog/2023/谈谈我的「数字文具盒」---个人工作流" data-for="Personal/Blog/2023/谈谈我的「数字文具盒」---个人工作流">谈谈我的「数字文具盒」 - 个人工作流</a></li><li><a href="../../../../Personal/Blog/2023/长安三万里" data-for="Personal/Blog/2023/长安三万里">长安三万里</a></li><li><a href="../../../../Personal/Blog/2023/黄山归来不看岳" data-for="Personal/Blog/2023/黄山归来不看岳">黄山归来不看岳</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Blog/2024"><button class="folder-button"><span class="folder-title">2024</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Blog/2024"><li><a href="../../../../Personal/Blog/2024/「救赎之路」更名「向阳而生」" data-for="Personal/Blog/2024/「救赎之路」更名「向阳而生」">「救赎之路」更名「向阳而生」</a></li><li><a href="../../../../Personal/Blog/2024/回顾-2023" data-for="Personal/Blog/2024/回顾-2023">2023 年终总结</a></li><li><a href="../../../../Personal/Blog/2024/2023-年终问答" data-for="Personal/Blog/2024/2023-年终问答">2023 年终问答</a></li><li><a href="../../../../Personal/Blog/2024/CityWalk——公车挑战" data-for="Personal/Blog/2024/CityWalk——公车挑战">CityWalk——公车挑战探索未知的城市</a></li><li><a href="../../../../Personal/Blog/2024/Python-项目终极部署解决方案" data-for="Personal/Blog/2024/Python-项目终极部署解决方案">Python 项目终极部署解决方案</a></li><li><a href="../../../../Personal/Blog/2024/一命二运三风水" data-for="Personal/Blog/2024/一命二运三风水">一命二运三风水</a></li><li><a href="../../../../Personal/Blog/2024/乌兰哈达火山银河之旅" data-for="Personal/Blog/2024/乌兰哈达火山银河之旅">乌兰哈达火山银河之旅</a></li><li><a href="../../../../Personal/Blog/2024/冰箱,让你我错过了多少新鲜的生活?" data-for="Personal/Blog/2024/冰箱,让你我错过了多少新鲜的生活?">冰箱,让你我错过了多少新鲜的生活?</a></li><li><a href="../../../../Personal/Blog/2024/回读者信──240816" data-for="Personal/Blog/2024/回读者信──240816">回读者信──240816</a></li><li><a href="../../../../Personal/Blog/2024/夜泊西湖听雨声" data-for="Personal/Blog/2024/夜泊西湖听雨声">夜泊西湖听雨声</a></li><li><a href="../../../../Personal/Blog/2024/如何开好一场会?" data-for="Personal/Blog/2024/如何开好一场会?">如何开好一场会?</a></li><li><a href="../../../../Personal/Blog/2024/如何打破信息茧房?" data-for="Personal/Blog/2024/如何打破信息茧房?">如何打破信息茧房?</a></li><li><a href="../../../../Personal/Blog/2024/富人的红灯与穷人的绿灯" data-for="Personal/Blog/2024/富人的红灯与穷人的绿灯">富人的红灯与穷人的绿灯</a></li><li><a href="../../../../Personal/Blog/2024/师从-ChatGPT" data-for="Personal/Blog/2024/师从-ChatGPT">师从 ChatGPT</a></li><li><a href="../../../../Personal/Blog/2024/我又从-Ubunut-换成了-Fedora" data-for="Personal/Blog/2024/我又从-Ubunut-换成了-Fedora">我又从 Ubunut 换成了 Fedora</a></li><li><a href="../../../../Personal/Blog/2024/我的一天" data-for="Personal/Blog/2024/我的一天">我的一天</a></li><li><a href="../../../../Personal/Blog/2024/打工三年记" data-for="Personal/Blog/2024/打工三年记">打工三年记</a></li><li><a href="../../../../Personal/Blog/2024/新奇的-HR-经历" data-for="Personal/Blog/2024/新奇的-HR-经历">新奇的 HR 经历</a></li><li><a href="../../../../Personal/Blog/2024/穷则独善其身,达则兼济天下" data-for="Personal/Blog/2024/穷则独善其身,达则兼济天下">穷则独善其身,达则兼济天下</a></li><li><a href="../../../../Personal/Blog/2024/继续开荒我那一亩三分地" data-for="Personal/Blog/2024/继续开荒我那一亩三分地">继续开荒我那一亩三分地</a></li><li><a href="../../../../Personal/Blog/2024/記伍月" data-for="Personal/Blog/2024/記伍月">記伍月</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book"><button class="folder-button"><span class="folder-title">Book</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/个人成长"><button class="folder-button"><span class="folder-title">个人成长</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/个人成长"><li><a href="../../../../Personal/Book/个人成长/习惯的力量(新版)" data-for="Personal/Book/个人成长/习惯的力量(新版)">习惯的力量(新版)</a></li><li><a href="../../../../Personal/Book/个人成长/以极简的方式去生活" data-for="Personal/Book/个人成长/以极简的方式去生活">以极简的方式去生活</a></li><li><a href="../../../../Personal/Book/个人成长/写出我心:普通人如何通过写作表达自己" data-for="Personal/Book/个人成长/写出我心:普通人如何通过写作表达自己">写出我心:普通人如何通过写作表达自己</a></li><li><a href="../../../../Personal/Book/个人成长/刻意练习:如何从新手到大师" data-for="Personal/Book/个人成长/刻意练习:如何从新手到大师">刻意练习:如何从新手到大师</a></li><li><a href="../../../../Personal/Book/个人成长/十分钟冥想" data-for="Personal/Book/个人成长/十分钟冥想">十分钟冥想</a></li><li><a href="../../../../Personal/Book/个人成长/即兴表达" data-for="Personal/Book/个人成长/即兴表达">即兴表达</a></li><li><a href="../../../../Personal/Book/个人成长/学习之道" data-for="Personal/Book/个人成长/学习之道">学习之道</a></li><li><a href="../../../../Personal/Book/个人成长/学会写作:自我进阶的高效方法" data-for="Personal/Book/个人成长/学会写作:自我进阶的高效方法">学会写作:自我进阶的高效方法</a></li><li><a href="../../../../Personal/Book/个人成长/底层逻辑" data-for="Personal/Book/个人成长/底层逻辑">底层逻辑</a></li><li><a href="../../../../Personal/Book/个人成长/底层逻辑:看清这个世界的底牌" data-for="Personal/Book/个人成长/底层逻辑:看清这个世界的底牌">底层逻辑:看清这个世界的底牌</a></li><li><a href="../../../../Personal/Book/个人成长/当下的力量(白金版)" data-for="Personal/Book/个人成长/当下的力量(白金版)">当下的力量(白金版)</a></li><li><a href="../../../../Personal/Book/个人成长/我的第一本人生规划手册" data-for="Personal/Book/个人成长/我的第一本人生规划手册">我的第一本人生规划手册</a></li><li><a href="../../../../Personal/Book/个人成长/超级面试官:快速提升识人技能的面试实战手册" data-for="Personal/Book/个人成长/超级面试官:快速提升识人技能的面试实战手册">超级面试官:快速提升识人技能的面试实战手册</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/医学健康"><button class="folder-button"><span class="folder-title">医学健康</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/医学健康"><li><a href="../../../../Personal/Book/医学健康/你是你吃出来的套装共2册" data-for="Personal/Book/医学健康/你是你吃出来的套装共2册">你是你吃出来的套装共2册</a></li><li><a href="../../../../Personal/Book/医学健康/小小药箱护健康教您用好家庭小药箱" data-for="Personal/Book/医学健康/小小药箱护健康教您用好家庭小药箱">小小药箱护健康教您用好家庭小药箱</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/历史"><button class="folder-button"><span class="folder-title">历史</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/历史"><li><a href="../../../../Personal/Book/历史/信息简史" data-for="Personal/Book/历史/信息简史">信息简史</a></li><li><a href="../../../../Personal/Book/历史/这里是中国2" data-for="Personal/Book/历史/这里是中国2">这里是中国2</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/哲学宗教"><button class="folder-button"><span class="folder-title">哲学宗教</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/哲学宗教"><li><a href="../../../../Personal/Book/哲学宗教/半小时漫画中国哲学史套装全2册" data-for="Personal/Book/哲学宗教/半小时漫画中国哲学史套装全2册">半小时漫画中国哲学史套装全2册</a></li><li><a href="../../../../Personal/Book/哲学宗教/第一性原理" data-for="Personal/Book/哲学宗教/第一性原理">第一性原理</a></li><li><a href="../../../../Personal/Book/哲学宗教/结构化思维" data-for="Personal/Book/哲学宗教/结构化思维">结构化思维</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/心理"><button class="folder-button"><span class="folder-title">心理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/心理"><li><a href="../../../../Personal/Book/心理/乌合之众(果麦经典)" data-for="Personal/Book/心理/乌合之众(果麦经典)">乌合之众(果麦经典)</a></li><li><a href="../../../../Personal/Book/心理/十分钟冥想" data-for="Personal/Book/心理/十分钟冥想">十分钟冥想</a></li><li><a href="../../../../Personal/Book/心理/认知觉醒:开启自我改变的原动力" data-for="Personal/Book/心理/认知觉醒:开启自我改变的原动力">认知觉醒:开启自我改变的原动力</a></li><li><a href="../../../../Personal/Book/心理/认知驱动:做成一件对他人很有用的事" data-for="Personal/Book/心理/认知驱动:做成一件对他人很有用的事">认知驱动:做成一件对他人很有用的事</a></li><li><a href="../../../../Personal/Book/心理/谈性说爱写给女性的性心理24讲" data-for="Personal/Book/心理/谈性说爱写给女性的性心理24讲">谈性说爱写给女性的性心理24讲</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/政治军事"><button class="folder-button"><span class="folder-title">政治军事</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/政治军事"><li><a href="../../../../Personal/Book/政治军事/实践论" data-for="Personal/Book/政治军事/实践论">实践论</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/教育学习"><button class="folder-button"><span class="folder-title">教育学习</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/教育学习"><li><a href="../../../../Personal/Book/教育学习/如何阅读一本书" data-for="Personal/Book/教育学习/如何阅读一本书">如何阅读一本书</a></li><li><a href="../../../../Personal/Book/教育学习/赖世雄的英语学习法" data-for="Personal/Book/教育学习/赖世雄的英语学习法">赖世雄的英语学习法</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/文学"><button class="folder-button"><span class="folder-title">文学</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/文学"><li><a href="../../../../Personal/Book/文学/凤凰项目一个IT运维的传奇故事修订版" data-for="Personal/Book/文学/凤凰项目一个IT运维的传奇故事修订版">凤凰项目一个IT运维的传奇故事修订版</a></li><li><a href="../../../../Personal/Book/文学/老舍谈写作" data-for="Personal/Book/文学/老舍谈写作">老舍谈写作</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/生活百科"><button class="folder-button"><span class="folder-title">生活百科</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/生活百科"><li><a href="../../../../Personal/Book/生活百科/聂卫平围棋教程从15级到10级" data-for="Personal/Book/生活百科/聂卫平围棋教程从15级到10级">聂卫平围棋教程从15级到10级</a></li><li><a href="../../../../Personal/Book/生活百科/聂卫平围棋教程从入门到15级" data-for="Personal/Book/生活百科/聂卫平围棋教程从入门到15级">聂卫平围棋教程从入门到15级</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/社会文化"><button class="folder-button"><span class="folder-title">社会文化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/社会文化"><li><a href="../../../../Personal/Book/社会文化/人体简史" data-for="Personal/Book/社会文化/人体简史">人体简史</a></li><li><a href="../../../../Personal/Book/社会文化/你不可不知的法律常识" data-for="Personal/Book/社会文化/你不可不知的法律常识">你不可不知的法律常识</a></li><li><a href="../../../../Personal/Book/社会文化/半小时漫画《论语》" data-for="Personal/Book/社会文化/半小时漫画《论语》">半小时漫画《论语》</a></li><li><a href="../../../../Personal/Book/社会文化/民法典与百姓生活100问" data-for="Personal/Book/社会文化/民法典与百姓生活100问">民法典与百姓生活100问</a></li><li><a href="../../../../Personal/Book/社会文化/这里是中国" data-for="Personal/Book/社会文化/这里是中国">这里是中国</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/科学技术"><button class="folder-button"><span class="folder-title">科学技术</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/科学技术"><li><a href="../../../../Personal/Book/科学技术/贝尔实验室与美国革新大时代" data-for="Personal/Book/科学技术/贝尔实验室与美国革新大时代">贝尔实验室与美国革新大时代</a></li><li><a href="../../../../Personal/Book/科学技术/高性能Linux服务器运维实战shell编程、监控告警、性能优化与实战案例" data-for="Personal/Book/科学技术/高性能Linux服务器运维实战shell编程、监控告警、性能优化与实战案例">高性能Linux服务器运维实战shell编程、监控告警、性能优化与实战案例</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/经济理财"><button class="folder-button"><span class="folder-title">经济理财</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/经济理财"><li><a href="../../../../Personal/Book/经济理财/人力资源管理从入门到精通" data-for="Personal/Book/经济理财/人力资源管理从入门到精通">人力资源管理从入门到精通</a></li><li><a href="../../../../Personal/Book/经济理财/十分钟冥想" data-for="Personal/Book/经济理财/十分钟冥想">十分钟冥想</a></li><li><a href="../../../../Personal/Book/经济理财/半小时漫画股票实战法" data-for="Personal/Book/经济理财/半小时漫画股票实战法">半小时漫画股票实战法</a></li><li><a href="../../../../Personal/Book/经济理财/小米创业思考" data-for="Personal/Book/经济理财/小米创业思考">小米创业思考</a></li><li><a href="../../../../Personal/Book/经济理财/底层逻辑:半秒钟看透问题本质" data-for="Personal/Book/经济理财/底层逻辑:半秒钟看透问题本质">底层逻辑:半秒钟看透问题本质</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/艺术"><button class="folder-button"><span class="folder-title">艺术</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/艺术"><li><a href="../../../../Personal/Book/艺术/江湖丛谈(注音注释插图本)" data-for="Personal/Book/艺术/江湖丛谈(注音注释插图本)">江湖丛谈(注音注释插图本)</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Book/计算机"><button class="folder-button"><span class="folder-title">计算机</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Book/计算机"><li><a href="../../../../Personal/Book/计算机/Flask-Web开发基于Python的Web应用开发实战第2版" data-for="Personal/Book/计算机/Flask-Web开发基于Python的Web应用开发实战第2版">Flask Web开发基于Python的Web应用开发实战第2版</a></li><li><a href="../../../../Personal/Book/计算机/IT基础架构系统运维实践" data-for="Personal/Book/计算机/IT基础架构系统运维实践">IT基础架构系统运维实践</a></li><li><a href="../../../../Personal/Book/计算机/Linux命令行与shell脚本编程大全第4版" data-for="Personal/Book/计算机/Linux命令行与shell脚本编程大全第4版">Linux命令行与shell脚本编程大全第4版</a></li><li><a href="../../../../Personal/Book/计算机/Linux是怎样工作的" data-for="Personal/Book/计算机/Linux是怎样工作的">Linux是怎样工作的</a></li><li><a href="../../../../Personal/Book/计算机/Python工匠案例、技巧与工程实践" data-for="Personal/Book/计算机/Python工匠案例、技巧与工程实践">Python工匠案例、技巧与工程实践</a></li><li><a href="../../../../Personal/Book/计算机/Python编程从入门到实践第2版" data-for="Personal/Book/计算机/Python编程从入门到实践第2版">Python编程从入门到实践第2版</a></li><li><a href="../../../../Personal/Book/计算机/Python编程轻松进阶" data-for="Personal/Book/计算机/Python编程轻松进阶">Python编程轻松进阶</a></li><li><a href="../../../../Personal/Book/计算机/SQL必知必会第5版" data-for="Personal/Book/计算机/SQL必知必会第5版">SQL必知必会第5版</a></li><li><a href="../../../../Personal/Book/计算机/SREGoogle运维解密" data-for="Personal/Book/计算机/SREGoogle运维解密">SREGoogle运维解密</a></li><li><a href="../../../../Personal/Book/计算机/UNIX传奇历史与回忆" data-for="Personal/Book/计算机/UNIX传奇历史与回忆">UNIX传奇历史与回忆</a></li><li><a href="../../../../Personal/Book/计算机/VMware-vSphere-7.0云平台运维与管理第2版" data-for="Personal/Book/计算机/VMware-vSphere-7.0云平台运维与管理第2版">VMware vSphere 7.0云平台运维与管理第2版</a></li><li><a href="../../../../Personal/Book/计算机/人人都懂设计模式从生活中领悟设计模式Python实现" data-for="Personal/Book/计算机/人人都懂设计模式从生活中领悟设计模式Python实现">人人都懂设计模式从生活中领悟设计模式Python实现</a></li><li><a href="../../../../Personal/Book/计算机/从0到1HTML+CSS快速上手" data-for="Personal/Book/计算机/从0到1HTML+CSS快速上手">从0到1HTML+CSS快速上手</a></li><li><a href="../../../../Personal/Book/计算机/从0到1HTML5+CSS3修炼之道" data-for="Personal/Book/计算机/从0到1HTML5+CSS3修炼之道">从0到1HTML5+CSS3修炼之道</a></li><li><a href="../../../../Personal/Book/计算机/从0到1JavaScript-快速上手" data-for="Personal/Book/计算机/从0到1JavaScript-快速上手">从0到1JavaScript 快速上手</a></li><li><a href="../../../../Personal/Book/计算机/从0到1jQuery快速上手" data-for="Personal/Book/计算机/从0到1jQuery快速上手">从0到1jQuery快速上手</a></li><li><a href="../../../../Personal/Book/计算机/明解Python" data-for="Personal/Book/计算机/明解Python">明解Python</a></li><li><a href="../../../../Personal/Book/计算机/每天5分钟玩转Docker容器技术" data-for="Personal/Book/计算机/每天5分钟玩转Docker容器技术">每天5分钟玩转Docker容器技术</a></li><li><a href="../../../../Personal/Book/计算机/流畅的Python" data-for="Personal/Book/计算机/流畅的Python">流畅的Python</a></li><li><a href="../../../../Personal/Book/计算机/硅谷之火个人计算机的诞生与衰落第3版" data-for="Personal/Book/计算机/硅谷之火个人计算机的诞生与衰落第3版">硅谷之火个人计算机的诞生与衰落第3版</a></li><li><a href="../../../../Personal/Book/计算机/秒懂设计模式" data-for="Personal/Book/计算机/秒懂设计模式">秒懂设计模式</a></li><li><a href="../../../../Personal/Book/计算机/程序员的README" data-for="Personal/Book/计算机/程序员的README">程序员的README</a></li><li><a href="../../../../Personal/Book/计算机/精通Python设计模式第2版" data-for="Personal/Book/计算机/精通Python设计模式第2版">精通Python设计模式第2版</a></li><li><a href="../../../../Personal/Book/计算机/网络安全等级保护2.0:定级、测评、实施与运维" data-for="Personal/Book/计算机/网络安全等级保护2.0:定级、测评、实施与运维">网络安全等级保护2.0:定级、测评、实施与运维</a></li><li><a href="../../../../Personal/Book/计算机/网络工程师红宝书:思科华为华三实战案例荟萃" data-for="Personal/Book/计算机/网络工程师红宝书:思科华为华三实战案例荟萃">网络工程师红宝书:思科华为华三实战案例荟萃</a></li><li><a href="../../../../Personal/Book/计算机/网络是怎样连接的" data-for="Personal/Book/计算机/网络是怎样连接的">网络是怎样连接的</a></li><li><a href="../../../../Personal/Book/计算机/网络运维亲历记-(网络运维纪实文学)" data-for="Personal/Book/计算机/网络运维亲历记-(网络运维纪实文学)">网络运维亲历记 (网络运维纪实文学)</a></li><li><a href="../../../../Personal/Book/计算机/虚拟化工程师运维实战VMware服务器虚拟化+Citrix桌面应用虚拟化+Veeam备份+Zabbix监控" data-for="Personal/Book/计算机/虚拟化工程师运维实战VMware服务器虚拟化+Citrix桌面应用虚拟化+Veeam备份+Zabbix监控">虚拟化工程师运维实战VMware服务器虚拟化+Citrix桌面/应用虚拟化+Veeam备份+Zabbix监控</a></li><li><a href="../../../../Personal/Book/计算机/计算机:一部历史" data-for="Personal/Book/计算机/计算机:一部历史">计算机:一部历史</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal"><button class="folder-button"><span class="folder-title">Journal</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022"><button class="folder-button"><span class="folder-title">2022</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W34"><button class="folder-button"><span class="folder-title">W34</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W34"><li><a href="../../../../Personal/Journal/2022/W34/2022-08-24" data-for="Personal/Journal/2022/W34/2022-08-24">2022-08-24</a></li><li><a href="../../../../Personal/Journal/2022/W34/2022-08-25" data-for="Personal/Journal/2022/W34/2022-08-25">2022-08-25</a></li><li><a href="../../../../Personal/Journal/2022/W34/2022-08-26" data-for="Personal/Journal/2022/W34/2022-08-26">2022-08-26</a></li><li><a href="../../../../Personal/Journal/2022/W34/2022-08-27" data-for="Personal/Journal/2022/W34/2022-08-27">2022-08-27</a></li><li><a href="../../../../Personal/Journal/2022/W34/2022-08-28" data-for="Personal/Journal/2022/W34/2022-08-28">2022-08-28</a></li><li><a href="../../../../Personal/Journal/2022/W34/2022-W34" data-for="Personal/Journal/2022/W34/2022-W34">2022-W34</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W35"><button class="folder-button"><span class="folder-title">W35</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W35"><li><a href="../../../../Personal/Journal/2022/W35/2022-08-29" data-for="Personal/Journal/2022/W35/2022-08-29">2022-08-29</a></li><li><a href="../../../../Personal/Journal/2022/W35/2022-08-30" data-for="Personal/Journal/2022/W35/2022-08-30">2022-08-30</a></li><li><a href="../../../../Personal/Journal/2022/W35/2022-08-31" data-for="Personal/Journal/2022/W35/2022-08-31">2022-08-31</a></li><li><a href="../../../../Personal/Journal/2022/W35/2022-09-01" data-for="Personal/Journal/2022/W35/2022-09-01">2022-09-01</a></li><li><a href="../../../../Personal/Journal/2022/W35/2022-W35" data-for="Personal/Journal/2022/W35/2022-W35">2022-W35</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W36"><button class="folder-button"><span class="folder-title">W36</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W36"><li><a href="../../../../Personal/Journal/2022/W36/2022-09-05" data-for="Personal/Journal/2022/W36/2022-09-05">2022-09-05</a></li><li><a href="../../../../Personal/Journal/2022/W36/2022-09-06" data-for="Personal/Journal/2022/W36/2022-09-06">2022-09-06</a></li><li><a href="../../../../Personal/Journal/2022/W36/2022-09-07" data-for="Personal/Journal/2022/W36/2022-09-07">2022-09-07</a></li><li><a href="../../../../Personal/Journal/2022/W36/2022-09-08" data-for="Personal/Journal/2022/W36/2022-09-08">2022-09-08</a></li><li><a href="../../../../Personal/Journal/2022/W36/2022-W36" data-for="Personal/Journal/2022/W36/2022-W36">2022-W36</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W37"><button class="folder-button"><span class="folder-title">W37</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W37"><li><a href="../../../../Personal/Journal/2022/W37/2022-09-12" data-for="Personal/Journal/2022/W37/2022-09-12">2022-09-12</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-13" data-for="Personal/Journal/2022/W37/2022-09-13">2022-09-13</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-14" data-for="Personal/Journal/2022/W37/2022-09-14">2022-09-14</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-15" data-for="Personal/Journal/2022/W37/2022-09-15">2022-09-15</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-16" data-for="Personal/Journal/2022/W37/2022-09-16">2022-09-16</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-17" data-for="Personal/Journal/2022/W37/2022-09-17">2022-09-17</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-09-18" data-for="Personal/Journal/2022/W37/2022-09-18">2022-09-18</a></li><li><a href="../../../../Personal/Journal/2022/W37/2022-W37" data-for="Personal/Journal/2022/W37/2022-W37">2022-W37</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W38"><button class="folder-button"><span class="folder-title">W38</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W38"><li><a href="../../../../Personal/Journal/2022/W38/2022-09-19" data-for="Personal/Journal/2022/W38/2022-09-19">2022-09-19</a></li><li><a href="../../../../Personal/Journal/2022/W38/2022-09-20" data-for="Personal/Journal/2022/W38/2022-09-20">2022-09-20</a></li><li><a href="../../../../Personal/Journal/2022/W38/2022-09-21" data-for="Personal/Journal/2022/W38/2022-09-21">2022-09-21</a></li><li><a href="../../../../Personal/Journal/2022/W38/2022-09-22" data-for="Personal/Journal/2022/W38/2022-09-22">2022-09-22</a></li><li><a href="../../../../Personal/Journal/2022/W38/2022-W38" data-for="Personal/Journal/2022/W38/2022-W38">2022-W38</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W39"><button class="folder-button"><span class="folder-title">W39</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W39"><li><a href="../../../../Personal/Journal/2022/W39/2022-09-28" data-for="Personal/Journal/2022/W39/2022-09-28">2022-09-28</a></li><li><a href="../../../../Personal/Journal/2022/W39/2022-09-29" data-for="Personal/Journal/2022/W39/2022-09-29">2022-09-29</a></li><li><a href="../../../../Personal/Journal/2022/W39/2022-W39" data-for="Personal/Journal/2022/W39/2022-W39">2022-W39</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W41"><button class="folder-button"><span class="folder-title">W41</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W41"><li><a href="../../../../Personal/Journal/2022/W41/2022-10-10" data-for="Personal/Journal/2022/W41/2022-10-10">2022-10-10</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-10-11" data-for="Personal/Journal/2022/W41/2022-10-11">2022-10-11</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-10-12" data-for="Personal/Journal/2022/W41/2022-10-12">2022-10-12</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-10-13" data-for="Personal/Journal/2022/W41/2022-10-13">2022-10-13</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-10-14" data-for="Personal/Journal/2022/W41/2022-10-14">2022-10-14</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-10-16" data-for="Personal/Journal/2022/W41/2022-10-16">2022-10-16</a></li><li><a href="../../../../Personal/Journal/2022/W41/2022-W41" data-for="Personal/Journal/2022/W41/2022-W41">2022-W41</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W42"><button class="folder-button"><span class="folder-title">W42</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W42"><li><a href="../../../../Personal/Journal/2022/W42/2022-10-17" data-for="Personal/Journal/2022/W42/2022-10-17">2022-10-17</a></li><li><a href="../../../../Personal/Journal/2022/W42/2022-10-18" data-for="Personal/Journal/2022/W42/2022-10-18">2022-10-18</a></li><li><a href="../../../../Personal/Journal/2022/W42/2022-10-19" data-for="Personal/Journal/2022/W42/2022-10-19">2022-10-19</a></li><li><a href="../../../../Personal/Journal/2022/W42/2022-10-21" data-for="Personal/Journal/2022/W42/2022-10-21">2022-10-21</a></li><li><a href="../../../../Personal/Journal/2022/W42/2022-W42" data-for="Personal/Journal/2022/W42/2022-W42">2022-W42</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W43"><button class="folder-button"><span class="folder-title">W43</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W43"><li><a href="../../../../Personal/Journal/2022/W43/2022-10-24" data-for="Personal/Journal/2022/W43/2022-10-24">2022-10-24</a></li><li><a href="../../../../Personal/Journal/2022/W43/2022-10-26" data-for="Personal/Journal/2022/W43/2022-10-26">2022-10-26</a></li><li><a href="../../../../Personal/Journal/2022/W43/2022-W43" data-for="Personal/Journal/2022/W43/2022-W43">2022-W43</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W44"><button class="folder-button"><span class="folder-title">W44</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W44"><li><a href="../../../../Personal/Journal/2022/W44/2022-11-02" data-for="Personal/Journal/2022/W44/2022-11-02">2022-11-02</a></li><li><a href="../../../../Personal/Journal/2022/W44/2022-W44" data-for="Personal/Journal/2022/W44/2022-W44">2022-W44</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W45"><button class="folder-button"><span class="folder-title">W45</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W45"><li><a href="../../../../Personal/Journal/2022/W45/2022-11-10" data-for="Personal/Journal/2022/W45/2022-11-10">2022-11-10</a></li><li><a href="../../../../Personal/Journal/2022/W45/2022-11-11" data-for="Personal/Journal/2022/W45/2022-11-11">2022-11-11</a></li><li><a href="../../../../Personal/Journal/2022/W45/2022-11-12" data-for="Personal/Journal/2022/W45/2022-11-12">2022-11-12</a></li><li><a href="../../../../Personal/Journal/2022/W45/2022-11-13" data-for="Personal/Journal/2022/W45/2022-11-13">2022-11-13</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W46"><button class="folder-button"><span class="folder-title">W46</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W46"><li><a href="../../../../Personal/Journal/2022/W46/2022-11-18" data-for="Personal/Journal/2022/W46/2022-11-18">2022-11-18</a></li><li><a href="../../../../Personal/Journal/2022/W46/2022-11-20" data-for="Personal/Journal/2022/W46/2022-11-20">2022-11-20</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W47"><button class="folder-button"><span class="folder-title">W47</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W47"><li><a href="../../../../Personal/Journal/2022/W47/2022-11-21" data-for="Personal/Journal/2022/W47/2022-11-21">2022-11-21</a></li><li><a href="../../../../Personal/Journal/2022/W47/2022-11-22" data-for="Personal/Journal/2022/W47/2022-11-22">2022-11-22</a></li><li><a href="../../../../Personal/Journal/2022/W47/2022-W47" data-for="Personal/Journal/2022/W47/2022-W47">2022-W47</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W48"><button class="folder-button"><span class="folder-title">W48</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W48"><li><a href="../../../../Personal/Journal/2022/W48/2022-11-28" data-for="Personal/Journal/2022/W48/2022-11-28">2022-11-28</a></li><li><a href="../../../../Personal/Journal/2022/W48/2022-11-29" data-for="Personal/Journal/2022/W48/2022-11-29">2022-11-29</a></li><li><a href="../../../../Personal/Journal/2022/W48/2022-12-01" data-for="Personal/Journal/2022/W48/2022-12-01">2022-12-01</a></li><li><a href="../../../../Personal/Journal/2022/W48/2022-12-04" data-for="Personal/Journal/2022/W48/2022-12-04">2022-12-04</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W49"><button class="folder-button"><span class="folder-title">W49</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W49"><li><a href="../../../../Personal/Journal/2022/W49/2022-12-06" data-for="Personal/Journal/2022/W49/2022-12-06">2022-12-06</a></li><li><a href="../../../../Personal/Journal/2022/W49/2022-W49" data-for="Personal/Journal/2022/W49/2022-W49">2022-W49</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2022/W50"><button class="folder-button"><span class="folder-title">W50</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2022/W50"><li><a href="../../../../Personal/Journal/2022/W50/2022-12-12" data-for="Personal/Journal/2022/W50/2022-12-12">2022-12-12</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023"><button class="folder-button"><span class="folder-title">2023</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W2"><button class="folder-button"><span class="folder-title">W2</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W2"><li><a href="../../../../Personal/Journal/2023/W2/2023-W2" data-for="Personal/Journal/2023/W2/2023-W2">2023-W2</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W3"><button class="folder-button"><span class="folder-title">W3</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W3"><li><a href="../../../../Personal/Journal/2023/W3/2023-01-16" data-for="Personal/Journal/2023/W3/2023-01-16">2023-01-16</a></li><li><a href="../../../../Personal/Journal/2023/W3/2023-01-18" data-for="Personal/Journal/2023/W3/2023-01-18">2023-01-18</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W5"><button class="folder-button"><span class="folder-title">W5</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W5"><li><a href="../../../../Personal/Journal/2023/W5/2023-W5" data-for="Personal/Journal/2023/W5/2023-W5">2023-W5</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W6"><button class="folder-button"><span class="folder-title">W6</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W6"><li><a href="../../../../Personal/Journal/2023/W6/2023-W6" data-for="Personal/Journal/2023/W6/2023-W6">2023-W6</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W7"><button class="folder-button"><span class="folder-title">W7</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W7"><li><a href="../../../../Personal/Journal/2023/W7/2023-02-14" data-for="Personal/Journal/2023/W7/2023-02-14">2023-02-14</a></li><li><a href="../../../../Personal/Journal/2023/W7/2023-02-15" data-for="Personal/Journal/2023/W7/2023-02-15">2023-02-15</a></li><li><a href="../../../../Personal/Journal/2023/W7/2023-02-16" data-for="Personal/Journal/2023/W7/2023-02-16">2023-02-16</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W8"><button class="folder-button"><span class="folder-title">W8</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W8"><li><a href="../../../../Personal/Journal/2023/W8/2023-02-20" data-for="Personal/Journal/2023/W8/2023-02-20">2023-02-20</a></li><li><a href="../../../../Personal/Journal/2023/W8/2023-02-22" data-for="Personal/Journal/2023/W8/2023-02-22">2023-02-22</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W10"><button class="folder-button"><span class="folder-title">W10</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W10"><li><a href="../../../../Personal/Journal/2023/W10/2023-W10" data-for="Personal/Journal/2023/W10/2023-W10">2023-W10</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W12"><button class="folder-button"><span class="folder-title">W12</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W12"><li><a href="../../../../Personal/Journal/2023/W12/2023-03-20" data-for="Personal/Journal/2023/W12/2023-03-20">2023-03-20</a></li><li><a href="../../../../Personal/Journal/2023/W12/2023-03-21" data-for="Personal/Journal/2023/W12/2023-03-21">2023-03-21</a></li><li><a href="../../../../Personal/Journal/2023/W12/2023-W12" data-for="Personal/Journal/2023/W12/2023-W12">2023-W12</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W14"><button class="folder-button"><span class="folder-title">W14</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W14"><li><a href="../../../../Personal/Journal/2023/W14/2023-04-08" data-for="Personal/Journal/2023/W14/2023-04-08">2023-04-08</a></li><li><a href="../../../../Personal/Journal/2023/W14/2023-W14" data-for="Personal/Journal/2023/W14/2023-W14">2023-W14</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W16"><button class="folder-button"><span class="folder-title">W16</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W16"><li><a href="../../../../Personal/Journal/2023/W16/2023-04-21" data-for="Personal/Journal/2023/W16/2023-04-21">2023-04-21</a></li><li><a href="../../../../Personal/Journal/2023/W16/2023-04-23" data-for="Personal/Journal/2023/W16/2023-04-23">2023-04-23</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W22"><button class="folder-button"><span class="folder-title">W22</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W22"><li><a href="../../../../Personal/Journal/2023/W22/2023-05-31" data-for="Personal/Journal/2023/W22/2023-05-31">2023-05-31</a></li><li><a href="../../../../Personal/Journal/2023/W22/2023-06-01" data-for="Personal/Journal/2023/W22/2023-06-01">2023-06-01</a></li><li><a href="../../../../Personal/Journal/2023/W22/2023-W22" data-for="Personal/Journal/2023/W22/2023-W22">2023-W22</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W23"><button class="folder-button"><span class="folder-title">W23</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W23"><li><a href="../../../../Personal/Journal/2023/W23/2023-06-05" data-for="Personal/Journal/2023/W23/2023-06-05">2023-06-05</a></li><li><a href="../../../../Personal/Journal/2023/W23/2023-06-08" data-for="Personal/Journal/2023/W23/2023-06-08">2023-06-08</a></li><li><a href="../../../../Personal/Journal/2023/W23/2023-W23" data-for="Personal/Journal/2023/W23/2023-W23">2023-W23</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W24"><button class="folder-button"><span class="folder-title">W24</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W24"><li><a href="../../../../Personal/Journal/2023/W24/2023-06-12" data-for="Personal/Journal/2023/W24/2023-06-12">2023-06-12</a></li><li><a href="../../../../Personal/Journal/2023/W24/2023-06-13" data-for="Personal/Journal/2023/W24/2023-06-13">2023-06-13</a></li><li><a href="../../../../Personal/Journal/2023/W24/2023-06-15" data-for="Personal/Journal/2023/W24/2023-06-15">2023-06-15</a></li><li><a href="../../../../Personal/Journal/2023/W24/2023-W24" data-for="Personal/Journal/2023/W24/2023-W24">2023-W24</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W25"><button class="folder-button"><span class="folder-title">W25</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W25"><li><a href="../../../../Personal/Journal/2023/W25/2023-W25" data-for="Personal/Journal/2023/W25/2023-W25">2023-W25</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W26"><button class="folder-button"><span class="folder-title">W26</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W26"><li><a href="../../../../Personal/Journal/2023/W26/2023-06-26" data-for="Personal/Journal/2023/W26/2023-06-26">2023-06-26</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W31"><button class="folder-button"><span class="folder-title">W31</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W31"><li><a href="../../../../Personal/Journal/2023/W31/2023-W31" data-for="Personal/Journal/2023/W31/2023-W31">2023-W31</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W32"><button class="folder-button"><span class="folder-title">W32</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W32"><li><a href="../../../../Personal/Journal/2023/W32/2023-08-07" data-for="Personal/Journal/2023/W32/2023-08-07">2023-08-07</a></li><li><a href="../../../../Personal/Journal/2023/W32/2023-08-08" data-for="Personal/Journal/2023/W32/2023-08-08">2023-08-08</a></li><li><a href="../../../../Personal/Journal/2023/W32/2023-W32" data-for="Personal/Journal/2023/W32/2023-W32">2023-W32</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W33"><button class="folder-button"><span class="folder-title">W33</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W33"><li><a href="../../../../Personal/Journal/2023/W33/2023-W33" data-for="Personal/Journal/2023/W33/2023-W33">2023-W33</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W35"><button class="folder-button"><span class="folder-title">W35</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W35"><li><a href="../../../../Personal/Journal/2023/W35/2023-W35" data-for="Personal/Journal/2023/W35/2023-W35">2023-W35</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W36"><button class="folder-button"><span class="folder-title">W36</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W36"><li><a href="../../../../Personal/Journal/2023/W36/2023-W36" data-for="Personal/Journal/2023/W36/2023-W36">2023-W36</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W37"><button class="folder-button"><span class="folder-title">W37</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W37"><li><a href="../../../../Personal/Journal/2023/W37/2023-W37" data-for="Personal/Journal/2023/W37/2023-W37">2023-W37</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W40"><button class="folder-button"><span class="folder-title">W40</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W40"><li><a href="../../../../Personal/Journal/2023/W40/2023-W40" data-for="Personal/Journal/2023/W40/2023-W40">2023-W40</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W45"><button class="folder-button"><span class="folder-title">W45</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W45"><li><a href="../../../../Personal/Journal/2023/W45/2023-11-12" data-for="Personal/Journal/2023/W45/2023-11-12">2023-11-12</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W46"><button class="folder-button"><span class="folder-title">W46</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W46"><li><a href="../../../../Personal/Journal/2023/W46/2023-11-15" data-for="Personal/Journal/2023/W46/2023-11-15">2023-11-15</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W48"><button class="folder-button"><span class="folder-title">W48</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W48"><li><a href="../../../../Personal/Journal/2023/W48/2023-W48" data-for="Personal/Journal/2023/W48/2023-W48">2023-W48</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W49"><button class="folder-button"><span class="folder-title">W49</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W49"><li><a href="../../../../Personal/Journal/2023/W49/2023-12-07" data-for="Personal/Journal/2023/W49/2023-12-07">2023-12-07</a></li><li><a href="../../../../Personal/Journal/2023/W49/2023-W49" data-for="Personal/Journal/2023/W49/2023-W49">2023-W49</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2023/W50"><button class="folder-button"><span class="folder-title">W50</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2023/W50"><li><a href="../../../../Personal/Journal/2023/W50/2023-12-12" data-for="Personal/Journal/2023/W50/2023-12-12">2023-12-12</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024"><button class="folder-button"><span class="folder-title">2024</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W8"><button class="folder-button"><span class="folder-title">W8</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W8"><li><a href="../../../../Personal/Journal/2024/W8/2024-02-22" data-for="Personal/Journal/2024/W8/2024-02-22">2024-02-22</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W10"><button class="folder-button"><span class="folder-title">W10</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W10"><li><a href="../../../../Personal/Journal/2024/W10/2024-03-05" data-for="Personal/Journal/2024/W10/2024-03-05">2024-03-05</a></li><li><a href="../../../../Personal/Journal/2024/W10/2024-03-06" data-for="Personal/Journal/2024/W10/2024-03-06">2024-03-06</a></li><li><a href="../../../../Personal/Journal/2024/W10/2024-03-07" data-for="Personal/Journal/2024/W10/2024-03-07">2024-03-07</a></li><li><a href="../../../../Personal/Journal/2024/W10/2024-W10" data-for="Personal/Journal/2024/W10/2024-W10">2024-W10</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W11"><button class="folder-button"><span class="folder-title">W11</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W11"><li><a href="../../../../Personal/Journal/2024/W11/2024-03-11" data-for="Personal/Journal/2024/W11/2024-03-11">2024-03-11</a></li><li><a href="../../../../Personal/Journal/2024/W11/2024-03-12" data-for="Personal/Journal/2024/W11/2024-03-12">2024-03-12</a></li><li><a href="../../../../Personal/Journal/2024/W11/2024-03-13" data-for="Personal/Journal/2024/W11/2024-03-13">2024-03-13</a></li><li><a href="../../../../Personal/Journal/2024/W11/2024-W11" data-for="Personal/Journal/2024/W11/2024-W11">2024-W11</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W12"><button class="folder-button"><span class="folder-title">W12</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W12"><li><a href="../../../../Personal/Journal/2024/W12/2024-03-20" data-for="Personal/Journal/2024/W12/2024-03-20">2024-03-20</a></li><li><a href="../../../../Personal/Journal/2024/W12/2024-W12" data-for="Personal/Journal/2024/W12/2024-W12">2024-W12</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W14"><button class="folder-button"><span class="folder-title">W14</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W14"><li><a href="../../../../Personal/Journal/2024/W14/2024-W14" data-for="Personal/Journal/2024/W14/2024-W14">2024-W14</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W16"><button class="folder-button"><span class="folder-title">W16</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W16"><li><a href="../../../../Personal/Journal/2024/W16/2024-W16" data-for="Personal/Journal/2024/W16/2024-W16">2024-W16</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W17"><button class="folder-button"><span class="folder-title">W17</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W17"><li><a href="../../../../Personal/Journal/2024/W17/2024-04-24" data-for="Personal/Journal/2024/W17/2024-04-24">2024-04-24</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W22"><button class="folder-button"><span class="folder-title">W22</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W22"><li><a href="../../../../Personal/Journal/2024/W22/2024-06-02" data-for="Personal/Journal/2024/W22/2024-06-02">2024-06-02</a></li><li><a href="../../../../Personal/Journal/2024/W22/2024-W22" data-for="Personal/Journal/2024/W22/2024-W22">2024-W22</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W23"><button class="folder-button"><span class="folder-title">W23</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W23"><li><a href="../../../../Personal/Journal/2024/W23/2024-06-03" data-for="Personal/Journal/2024/W23/2024-06-03">2024-06-03</a></li><li><a href="../../../../Personal/Journal/2024/W23/2024-06-04" data-for="Personal/Journal/2024/W23/2024-06-04">2024-06-04</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W24"><button class="folder-button"><span class="folder-title">W24</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W24"><li><a href="../../../../Personal/Journal/2024/W24/2024-06-12" data-for="Personal/Journal/2024/W24/2024-06-12">2024-06-12</a></li><li><a href="../../../../Personal/Journal/2024/W24/2024-W24" data-for="Personal/Journal/2024/W24/2024-W24">2024-W24</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W29"><button class="folder-button"><span class="folder-title">W29</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W29"><li><a href="../../../../Personal/Journal/2024/W29/2024-W29" data-for="Personal/Journal/2024/W29/2024-W29">2024-W29</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W30"><button class="folder-button"><span class="folder-title">W30</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W30"><li><a href="../../../../Personal/Journal/2024/W30/2024-07-22" data-for="Personal/Journal/2024/W30/2024-07-22">2024-07-22</a></li><li><a href="../../../../Personal/Journal/2024/W30/2024-07-25" data-for="Personal/Journal/2024/W30/2024-07-25">2024-07-25</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W33"><button class="folder-button"><span class="folder-title">W33</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W33"><li><a href="../../../../Personal/Journal/2024/W33/2024-08-12" data-for="Personal/Journal/2024/W33/2024-08-12">2024-08-12</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Personal/Journal/2024/W35"><button class="folder-button"><span class="folder-title">W35</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Personal/Journal/2024/W35"><li><a href="../../../../Personal/Journal/2024/W35/2024-08-31" data-for="Personal/Journal/2024/W35/2024-08-31">2024-08-31</a></li></ul></div></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional"><button class="folder-button"><span class="folder-title">Professional</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Company"><button class="folder-button"><span class="folder-title">Company</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Company"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Company/数字化"><button class="folder-button"><span class="folder-title">数字化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Company/数字化"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Company/数字化/规范"><button class="folder-button"><span class="folder-title">规范</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Company/数字化/规范"><li><a href="../../../../Professional/Company/数字化/规范/企业计算机命名规范" data-for="Professional/Company/数字化/规范/企业计算机命名规范">企业计算机命名规范</a></li><li><a href="../../../../Professional/Company/数字化/规范/企业域名分配规范" data-for="Professional/Company/数字化/规范/企业域名分配规范">域名分配规范</a></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work"><button class="folder-button"><span class="folder-title">Work</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/data-engineer"><button class="folder-button"><span class="folder-title">data-engineer</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/data-engineer"><li><a href="../../../../Professional/Work/data-engineer/home" data-for="Professional/Work/data-engineer/home">数据工程师data-engineer</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/full-stack"><button class="folder-button"><span class="folder-title">full-stack</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/full-stack"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/full-stack/基础"><button class="folder-button"><span class="folder-title">基础</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/full-stack/基础"><li><a href="../../../../Professional/Work/full-stack/基础/CSS" data-for="Professional/Work/full-stack/基础/CSS">CSS</a></li><li><a href="../../../../Professional/Work/full-stack/基础/HTML" data-for="Professional/Work/full-stack/基础/HTML">HTML</a></li><li><a href="../../../../Professional/Work/full-stack/基础/JavaScript" data-for="Professional/Work/full-stack/基础/JavaScript">JavaScript</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/full-stack/工具"><button class="folder-button"><span class="folder-title">工具</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/full-stack/工具"><li><a href="../../../../Professional/Work/full-stack/工具/PM2-工具" data-for="Professional/Work/full-stack/工具/PM2-工具">PM2 工具</a></li><li><a href="../../../../Professional/Work/full-stack/工具/Webpack" data-for="Professional/Work/full-stack/工具/Webpack">Webpack</a></li><li><a href="../../../../Professional/Work/full-stack/工具/包管理工具" data-for="Professional/Work/full-stack/工具/包管理工具">包管理器</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/full-stack/文化"><button class="folder-button"><span class="folder-title">文化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/full-stack/文化"><li><a href="../../../../Professional/Work/full-stack/文化/历史发展" data-for="Professional/Work/full-stack/文化/历史发展">历史发展</a></li><li><a href="../../../../Professional/Work/full-stack/文化/概述" data-for="Professional/Work/full-stack/文化/概述">概述</a></li><li><a href="../../../../Professional/Work/full-stack/文化/现代化开发工具链" data-for="Professional/Work/full-stack/文化/现代化开发工具链">现代化开发工具链</a></li></ul></div></li><li><a href="../../../../Professional/Work/full-stack/home" data-for="Professional/Work/full-stack/home">前端工程师Front-End Engineer</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap"><button class="folder-button"><span class="folder-title">roadmap</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/权益保障"><button class="folder-button"><span class="folder-title">权益保障</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/权益保障"><li><a href="../../../../Professional/Work/roadmap/权益保障/仲裁指南" data-for="Professional/Work/roadmap/权益保障/仲裁指南">仲裁指南</a></li><li><a href="../../../../Professional/Work/roadmap/权益保障/职场维权实战经验" data-for="Professional/Work/roadmap/权益保障/职场维权实战经验">职场维权实战经验</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/求职经验"><button class="folder-button"><span class="folder-title">求职经验</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/求职经验"><li><a href="../../../../Professional/Work/roadmap/求职经验/互联网行业-郑州" data-for="Professional/Work/roadmap/求职经验/互联网行业-郑州">互联网行业-郑州</a></li><li><a href="../../../../Professional/Work/roadmap/求职经验/写给软件工程师的建议" data-for="Professional/Work/roadmap/求职经验/写给软件工程师的建议">写给软件工程师的建议</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/简历攻略"><button class="folder-button"><span class="folder-title">简历攻略</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/简历攻略"><li><a href="../../../../Professional/Work/roadmap/简历攻略/IT-类简历" data-for="Professional/Work/roadmap/简历攻略/IT-类简历">IT 类简历</a></li><li><a href="../../../../Professional/Work/roadmap/简历攻略/简历原则" data-for="Professional/Work/roadmap/简历攻略/简历原则">简历原则</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/职业规划"><button class="folder-button"><span class="folder-title">职业规划</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/职业规划"><li><a href="../../../../Professional/Work/roadmap/职业规划/开发者职业路线图" data-for="Professional/Work/roadmap/职业规划/开发者职业路线图">开发者职业路线图</a></li><li><a href="../../../../Professional/Work/roadmap/职业规划/职业宏观规划图" data-for="Professional/Work/roadmap/职业规划/职业宏观规划图">职业宏观规划图</a></li><li><a href="../../../../Professional/Work/roadmap/职业规划/职业宏观路线图" data-for="Professional/Work/roadmap/职业规划/职业宏观路线图">职业宏观路线图</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/职场心得"><button class="folder-button"><span class="folder-title">职场心得</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/职场心得"><li><a href="../../../../Professional/Work/roadmap/职场心得/华为新员工的-8-个阶段" data-for="Professional/Work/roadmap/职场心得/华为新员工的-8-个阶段">华为新员工的 8 个阶段</a></li><li><a href="../../../../Professional/Work/roadmap/职场心得/如何平衡工作和生活" data-for="Professional/Work/roadmap/职场心得/如何平衡工作和生活">如何平衡工作和生活</a></li><li><a href="../../../../Professional/Work/roadmap/职场心得/如何度过新手村" data-for="Professional/Work/roadmap/职场心得/如何度过新手村">如何度过新手村</a></li><li><a href="../../../../Professional/Work/roadmap/职场心得/如何有效应对职场政治" data-for="Professional/Work/roadmap/职场心得/如何有效应对职场政治">如何有效应对职场政治</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/薪酬攻略"><button class="folder-button"><span class="folder-title">薪酬攻略</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/薪酬攻略"><li><a href="../../../../Professional/Work/roadmap/薪酬攻略/社会保障" data-for="Professional/Work/roadmap/薪酬攻略/社会保障">社会保障</a></li><li><a href="../../../../Professional/Work/roadmap/薪酬攻略/绩效考核" data-for="Professional/Work/roadmap/薪酬攻略/绩效考核">绩效考核</a></li><li><a href="../../../../Professional/Work/roadmap/薪酬攻略/薪酬制度" data-for="Professional/Work/roadmap/薪酬攻略/薪酬制度">薪酬制度</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/roadmap/面试法则"><button class="folder-button"><span class="folder-title">面试法则</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/roadmap/面试法则"><li><a href="../../../../Professional/Work/roadmap/面试法则/反向面试" data-for="Professional/Work/roadmap/面试法则/反向面试">反向面试</a></li><li><a href="../../../../Professional/Work/roadmap/面试法则/面试-10-大常见问题" data-for="Professional/Work/roadmap/面试法则/面试-10-大常见问题">面试 10 大常见问题</a></li></ul></div></li><li><a href="../../../../Professional/Work/roadmap/home" data-for="Professional/Work/roadmap/home">求职之路</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Professional/Work/sre-engineer"><button class="folder-button"><span class="folder-title">sre-engineer</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Professional/Work/sre-engineer"><li><a href="../../../../Professional/Work/sre-engineer/home" data-for="Professional/Work/sre-engineer/home">SRE (站点可靠性工程师)</a></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences"><button class="folder-button"><span class="folder-title">SocialSciences</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences/English"><button class="folder-button"><span class="folder-title">English</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences/English"><li><a href="../../../../SocialSciences/English/字母音标" data-for="SocialSciences/English/字母音标">字母音标</a></li><li><a href="../../../../SocialSciences/English/语法基础" data-for="SocialSciences/English/语法基础">语法基础</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences/Government"><button class="folder-button"><span class="folder-title">Government</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences/Government"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences/Government/中国"><button class="folder-button"><span class="folder-title">中国</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences/Government/中国"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences/Government/中国/标准"><button class="folder-button"><span class="folder-title">标准</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences/Government/中国/标准"><li><a href="../../../../SocialSciences/Government/中国/标准/标准组织" data-for="SocialSciences/Government/中国/标准/标准组织">标准组织</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="SocialSciences/Government/中国/法律"><button class="folder-button"><span class="folder-title">法律</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="SocialSciences/Government/中国/法律"><li><a href="../../../../SocialSciences/Government/中国/法律/法律文书" data-for="SocialSciences/Government/中国/法律/法律文书">法律文书</a></li></ul></div></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology"><button class="folder-button"><span class="folder-title">Technology</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/CloudService"><button class="folder-button"><span class="folder-title">CloudService</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/CloudService"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/CloudService/基础"><button class="folder-button"><span class="folder-title">基础</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/CloudService/基础"><li><a href="../../../../Technology/CloudService/基础/IT-基础架构" data-for="Technology/CloudService/基础/IT-基础架构">IT 基础架构</a></li><li><a href="../../../../Technology/CloudService/基础/云计算" data-for="Technology/CloudService/基础/云计算">云计算概述</a></li><li><a href="../../../../Technology/CloudService/基础/功能即服务FaaS" data-for="Technology/CloudService/基础/功能即服务FaaS">功能即服务FaaS</a></li><li><a href="../../../../Technology/CloudService/基础/基础架构即服务IaaS" data-for="Technology/CloudService/基础/基础架构即服务IaaS">基础架构即服务IaaS</a></li><li><a href="../../../../Technology/CloudService/基础/平台即服务PaaS" data-for="Technology/CloudService/基础/平台即服务PaaS">平台即服务PaaS</a></li><li><a href="../../../../Technology/CloudService/基础/软件即服务SaaS" data-for="Technology/CloudService/基础/软件即服务SaaS">软件即服务SaaS</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork"><button class="folder-button"><span class="folder-title">ComputerNetwork</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork/Nginx"><button class="folder-button"><span class="folder-title">Nginx</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork/Nginx"><li><a href="../../../../Technology/ComputerNetwork/Nginx/概述" data-for="Technology/ComputerNetwork/Nginx/概述">Nginx 概述</a></li><li><a href="../../../../Technology/ComputerNetwork/Nginx/内容缓存" data-for="Technology/ComputerNetwork/Nginx/内容缓存">内容缓存</a></li><li><a href="../../../../Technology/ComputerNetwork/Nginx/基础配置" data-for="Technology/ComputerNetwork/Nginx/基础配置">基础配置</a></li><li><a href="../../../../Technology/ComputerNetwork/Nginx/负载均衡" data-for="Technology/ComputerNetwork/Nginx/负载均衡">负载均衡</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork/公共服务"><button class="folder-button"><span class="folder-title">公共服务</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork/公共服务"><li><a href="../../../../Technology/ComputerNetwork/公共服务/IPv4-DNS-服务" data-for="Technology/ComputerNetwork/公共服务/IPv4-DNS-服务">IPv4 DNS 服务</a></li><li><a href="../../../../Technology/ComputerNetwork/公共服务/IPv6-DNS-服务" data-for="Technology/ComputerNetwork/公共服务/IPv6-DNS-服务">IPv6 DNS 服务</a></li><li><a href="../../../../Technology/ComputerNetwork/公共服务/Mirror-镜像站" data-for="Technology/ComputerNetwork/公共服务/Mirror-镜像站">Mirror 镜像站</a></li><li><a href="../../../../Technology/ComputerNetwork/公共服务/NTP-服务器" data-for="Technology/ComputerNetwork/公共服务/NTP-服务器">NTP 服务器</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork/应用服务"><button class="folder-button"><span class="folder-title">应用服务</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork/应用服务"><li><a href="../../../../Technology/ComputerNetwork/应用服务/CDN-内容分发网络" data-for="Technology/ComputerNetwork/应用服务/CDN-内容分发网络">CDN 内容分发网络</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork/网络协议"><button class="folder-button"><span class="folder-title">网络协议</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork/网络协议"><li><a href="../../../../Technology/ComputerNetwork/网络协议/DHCP-动态主机配置协议" data-for="Technology/ComputerNetwork/网络协议/DHCP-动态主机配置协议">DHCP 动态主机配置协议</a></li><li><a href="../../../../Technology/ComputerNetwork/网络协议/DNS-域名系统" data-for="Technology/ComputerNetwork/网络协议/DNS-域名系统">DNS 域名系统</a></li><li><a href="../../../../Technology/ComputerNetwork/网络协议/IP-网际协议" data-for="Technology/ComputerNetwork/网络协议/IP-网际协议">IP 网际协议</a></li><li><a href="../../../../Technology/ComputerNetwork/网络协议/TCP-传输控制协议" data-for="Technology/ComputerNetwork/网络协议/TCP-传输控制协议">TCP 传输控制协议</a></li><li><a href="../../../../Technology/ComputerNetwork/网络协议/UDP-用户数据报协议" data-for="Technology/ComputerNetwork/网络协议/UDP-用户数据报协议">UDP 用户数据报协议</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerNetwork/网络基础"><button class="folder-button"><span class="folder-title">网络基础</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerNetwork/网络基础"><li><a href="../../../../Technology/ComputerNetwork/网络基础/网络基础" data-for="Technology/ComputerNetwork/网络基础/网络基础">网络基础</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity"><button class="folder-button"><span class="folder-title">ComputerSecurity</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/信息安全"><button class="folder-button"><span class="folder-title">信息安全</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/信息安全"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/信息安全/OpenPGP"><button class="folder-button"><span class="folder-title">OpenPGP</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/信息安全/OpenPGP"><li><a href="../../../../Technology/ComputerSecurity/信息安全/OpenPGP/GnuPG-简明指南" data-for="Technology/ComputerSecurity/信息安全/OpenPGP/GnuPG-简明指南">GnuPG 简明指南</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/密码学"><button class="folder-button"><span class="folder-title">密码学</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/密码学"><li><a href="../../../../Technology/ComputerSecurity/密码学/简明指南" data-for="Technology/ComputerSecurity/密码学/简明指南">简明指南</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/用户安全"><button class="folder-button"><span class="folder-title">用户安全</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/用户安全"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/用户安全/权限设计"><button class="folder-button"><span class="folder-title">权限设计</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/用户安全/权限设计"><li><a href="../../../../Technology/ComputerSecurity/用户安全/权限设计/主流权限系统的设计" data-for="Technology/ComputerSecurity/用户安全/权限设计/主流权限系统的设计">主流权限系统的设计</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/用户安全/用户鉴权"><button class="folder-button"><span class="folder-title">用户鉴权</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/用户安全/用户鉴权"><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/HTTP-基本鉴权" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/HTTP-基本鉴权">HTTP 基本鉴权</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/JWTJSON-Web-Token鉴权" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/JWTJSON-Web-Token鉴权">JWT 鉴权</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/OAuth-鉴权" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/OAuth-鉴权">OAuth 鉴权</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/Session-Cookie-鉴权" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/Session-Cookie-鉴权">Session-Cookie 鉴权</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/单点登录Single-Sign-On" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/单点登录Single-Sign-On">SSO 单点登录</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/Token-鉴权" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/Token-鉴权">Token 鉴权</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/一键登录适用于原生APP" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/一键登录适用于原生APP">一键登录</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/唯一登录" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/唯一登录">唯一登录</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/扫码登录" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/扫码登录">扫码登录</a></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/用户鉴权/联合登录和信任登录" data-for="Technology/ComputerSecurity/用户安全/用户鉴权/联合登录和信任登录">联合登录和信任登录</a></li></ul></div></li><li><a href="../../../../Technology/ComputerSecurity/用户安全/简明指南" data-for="Technology/ComputerSecurity/用户安全/简明指南">简明指南</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/系统安全"><button class="folder-button"><span class="folder-title">系统安全</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/系统安全"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/系统安全/防火墙"><button class="folder-button"><span class="folder-title">防火墙</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/系统安全/防火墙"><li><a href="../../../../Technology/ComputerSecurity/系统安全/防火墙/网络端口大全" data-for="Technology/ComputerSecurity/系统安全/防火墙/网络端口大全">网络端口大全</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/网络安全"><button class="folder-button"><span class="folder-title">网络安全</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/网络安全"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/网络安全/OpenSSH"><button class="folder-button"><span class="folder-title">OpenSSH</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/网络安全/OpenSSH"><li><a href="../../../../Technology/ComputerSecurity/网络安全/OpenSSH/OpenSSH-使用方法" data-for="Technology/ComputerSecurity/网络安全/OpenSSH/OpenSSH-使用方法">OpenSSH 使用方法</a></li><li><a href="../../../../Technology/ComputerSecurity/网络安全/OpenSSH/OpenSSH-概述" data-for="Technology/ComputerSecurity/网络安全/OpenSSH/OpenSSH-概述">OpenSSH 概述</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerSecurity/网络安全/OpenSSL"><button class="folder-button"><span class="folder-title">OpenSSL</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerSecurity/网络安全/OpenSSL"><li><a href="../../../../Technology/ComputerSecurity/网络安全/OpenSSL/简明指南" data-for="Technology/ComputerSecurity/网络安全/OpenSSL/简明指南">简明指南</a></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ComputerStorage"><button class="folder-button"><span class="folder-title">ComputerStorage</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ComputerStorage"><li><a href="../../../../Technology/ComputerStorage/0.-大纲" data-for="Technology/ComputerStorage/0.-大纲">0. 大纲</a></li><li><a href="../../../../Technology/ComputerStorage/1.-存储基础" data-for="Technology/ComputerStorage/1.-存储基础">1. 存储基础</a></li><li><a href="../../../../Technology/ComputerStorage/2.-存储硬件" data-for="Technology/ComputerStorage/2.-存储硬件">2. 存储硬件</a></li><li><a href="../../../../Technology/ComputerStorage/3.-存储架构" data-for="Technology/ComputerStorage/3.-存储架构">3. 存储架构</a></li><li><a href="../../../../Technology/ComputerStorage/4.-文件系统" data-for="Technology/ComputerStorage/4.-文件系统">4. 文件系统</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/DatabaseSystem"><button class="folder-button"><span class="folder-title">DatabaseSystem</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/DatabaseSystem"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/DatabaseSystem/PostgreSQL"><button class="folder-button"><span class="folder-title">PostgreSQL</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/DatabaseSystem/PostgreSQL"><li><a href="../../../../Technology/DatabaseSystem/PostgreSQL/基本概念" data-for="Technology/DatabaseSystem/PostgreSQL/基本概念">基本概念</a></li><li><a href="../../../../Technology/DatabaseSystem/PostgreSQL/安装配置" data-for="Technology/DatabaseSystem/PostgreSQL/安装配置">安装配置</a></li><li><a href="../../../../Technology/DatabaseSystem/PostgreSQL/简介" data-for="Technology/DatabaseSystem/PostgreSQL/简介">简介</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/DatabaseSystem/SQL-语言"><button class="folder-button"><span class="folder-title">SQL 语言</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/DatabaseSystem/SQL-语言"><li><a href="../../../../Technology/DatabaseSystem/SQL-语言/基础语法" data-for="Technology/DatabaseSystem/SQL-语言/基础语法">基础语法</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/DatabaseSystem/基础"><button class="folder-button"><span class="folder-title">基础</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/DatabaseSystem/基础"><li><a href="../../../../Technology/DatabaseSystem/基础/关系型数据库" data-for="Technology/DatabaseSystem/基础/关系型数据库">关系型数据库</a></li><li><a href="../../../../Technology/DatabaseSystem/基础/数据库概述" data-for="Technology/DatabaseSystem/基础/数据库概述">数据库概述</a></li><li><a href="../../../../Technology/DatabaseSystem/基础/非关系型数据库" data-for="Technology/DatabaseSystem/基础/非关系型数据库">非关系型数据库</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted"><button class="folder-button"><span class="folder-title">GettingStarted</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/命令行工具"><button class="folder-button"><span class="folder-title">命令行工具</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/命令行工具"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/命令行工具/PowerShell"><button class="folder-button"><span class="folder-title">PowerShell</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/命令行工具/PowerShell"><li><a href="../../../../Technology/GettingStarted/命令行工具/PowerShell/PowerShell-入门" data-for="Technology/GettingStarted/命令行工具/PowerShell/PowerShell-入门">PowerShell 入门</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/PowerShell/PowerShell-进阶" data-for="Technology/GettingStarted/命令行工具/PowerShell/PowerShell-进阶">PowerShell 进阶</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/PowerShell/PowerShell-高级" data-for="Technology/GettingStarted/命令行工具/PowerShell/PowerShell-高级">PowerShell 高级</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/命令行工具/Shell"><button class="folder-button"><span class="folder-title">Shell</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/命令行工具/Shell"><li><a href="../../../../Technology/GettingStarted/命令行工具/Shell/Shell-命令操作" data-for="Technology/GettingStarted/命令行工具/Shell/Shell-命令操作">Linux 命令行操作</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Shell/Shell-必备锦囊" data-for="Technology/GettingStarted/命令行工具/Shell/Shell-必备锦囊">Shell 必备锦囊</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Shell/Shell-是什么" data-for="Technology/GettingStarted/命令行工具/Shell/Shell-是什么">Shell 是什么</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/命令行工具/Vim"><button class="folder-button"><span class="folder-title">Vim</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/命令行工具/Vim"><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/5.Vim-参考手册" data-for="Technology/GettingStarted/命令行工具/Vim/5.Vim-参考手册">Vim 参考手册</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/4.Vim-实用技巧" data-for="Technology/GettingStarted/命令行工具/Vim/4.Vim-实用技巧">Vim 实用技巧</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/6.Vim-帮助文档" data-for="Technology/GettingStarted/命令行工具/Vim/6.Vim-帮助文档">Vim 帮助文档</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/1.Vim-入门" data-for="Technology/GettingStarted/命令行工具/Vim/1.Vim-入门">Vim 快速入门</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/2.VIM-配置管理" data-for="Technology/GettingStarted/命令行工具/Vim/2.VIM-配置管理">VIM 配置管理</a></li><li><a href="../../../../Technology/GettingStarted/命令行工具/Vim/3.Vim-高级功能" data-for="Technology/GettingStarted/命令行工具/Vim/3.Vim-高级功能">Vim 高级功能</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/开源指南"><button class="folder-button"><span class="folder-title">开源指南</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/开源指南"><li><a href="../../../../Technology/GettingStarted/开源指南/如何向开源社区提问" data-for="Technology/GettingStarted/开源指南/如何向开源社区提问">如何向开源社区提问</a></li><li><a href="../../../../Technology/GettingStarted/开源指南/如何有效报告-BUG" data-for="Technology/GettingStarted/开源指南/如何有效报告-BUG">如何有效报告 BUG</a></li><li><a href="../../../../Technology/GettingStarted/开源指南/开源指北" data-for="Technology/GettingStarted/开源指南/开源指北">开源指北</a></li><li><a href="../../../../Technology/GettingStarted/开源指南/提问的智慧" data-for="Technology/GettingStarted/开源指南/提问的智慧">提问的智慧</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/文本处理"><button class="folder-button"><span class="folder-title">文本处理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/文本处理"><li><a href="../../../../Technology/GettingStarted/文本处理/正则表达式" data-for="Technology/GettingStarted/文本处理/正则表达式">正则表达式</a></li><li><a href="../../../../Technology/GettingStarted/文本处理/结构化文件" data-for="Technology/GettingStarted/文本处理/结构化文件">结构化文件</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/版本控制"><button class="folder-button"><span class="folder-title">版本控制</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/版本控制"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/版本控制/Git"><button class="folder-button"><span class="folder-title">Git</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/版本控制/Git"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/版本控制/Git/入门"><button class="folder-button"><span class="folder-title">入门</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/版本控制/Git/入门"><li><a href="../../../../Technology/GettingStarted/版本控制/Git/入门/分支" data-for="Technology/GettingStarted/版本控制/Git/入门/分支">分支</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/入门/协议" data-for="Technology/GettingStarted/版本控制/Git/入门/协议">协议</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/入门/基础" data-for="Technology/GettingStarted/版本控制/Git/入门/基础">基础</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/入门/起步" data-for="Technology/GettingStarted/版本控制/Git/入门/起步">起步</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/GettingStarted/版本控制/Git/进阶"><button class="folder-button"><span class="folder-title">进阶</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/GettingStarted/版本控制/Git/进阶"><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/Git-LFS" data-for="Technology/GettingStarted/版本控制/Git/进阶/Git-LFS">Git-LFS</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/参考手册" data-for="Technology/GettingStarted/版本控制/Git/进阶/参考手册">参考手册</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/工作流" data-for="Technology/GettingStarted/版本控制/Git/进阶/工作流">工作流</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/常用命令" data-for="Technology/GettingStarted/版本控制/Git/进阶/常用命令">常用命令</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/常用技巧" data-for="Technology/GettingStarted/版本控制/Git/进阶/常用技巧">常用技巧</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/思维导图" data-for="Technology/GettingStarted/版本控制/Git/进阶/思维导图">思维导图</a></li><li><a href="../../../../Technology/GettingStarted/版本控制/Git/进阶/钩子" data-for="Technology/GettingStarted/版本控制/Git/进阶/钩子">钩子</a></li></ul></div></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem"><button class="folder-button"><span class="folder-title">OperatingSystem</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Automation"><button class="folder-button"><span class="folder-title">Automation</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Automation"><li><a href="../../../../Technology/OperatingSystem/Automation/Ansible" data-for="Technology/OperatingSystem/Automation/Ansible">Ansible</a></li><li><a href="../../../../Technology/OperatingSystem/Automation/Cloud-init-快速部署" data-for="Technology/OperatingSystem/Automation/Cloud-init-快速部署">Cloud-init</a></li><li><a href="../../../../Technology/OperatingSystem/Automation/PXE--系统部署" data-for="Technology/OperatingSystem/Automation/PXE--系统部署">PXE 自动化部署</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Docker"><button class="folder-button"><span class="folder-title">Docker</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Docker"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Docker/基础"><button class="folder-button"><span class="folder-title">基础</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Docker/基础"><li><a href="../../../../Technology/OperatingSystem/Docker/基础/基础概念" data-for="Technology/OperatingSystem/Docker/基础/基础概念">基础概念</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/基础/安装配置" data-for="Technology/OperatingSystem/Docker/基础/安装配置">安装配置</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/基础/简介" data-for="Technology/OperatingSystem/Docker/基础/简介">简介</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Docker/进阶"><button class="folder-button"><span class="folder-title">进阶</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Docker/进阶"><li><a href="../../../../Technology/OperatingSystem/Docker/进阶/Docker-Compose" data-for="Technology/OperatingSystem/Docker/进阶/Docker-Compose">Docker Compose</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/进阶/Docker-Dockerfile" data-for="Technology/OperatingSystem/Docker/进阶/Docker-Dockerfile">Docker Dockerfile</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/进阶/Docker-使用" data-for="Technology/OperatingSystem/Docker/进阶/Docker-使用">Docker 使用</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Docker/高级"><button class="folder-button"><span class="folder-title">高级</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Docker/高级"><li><a href="../../../../Technology/OperatingSystem/Docker/高级/Docker-命令手册" data-for="Technology/OperatingSystem/Docker/高级/Docker-命令手册">Docker 命令手册</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/高级/Docker-存储" data-for="Technology/OperatingSystem/Docker/高级/Docker-存储">Docker 存储</a></li><li><a href="../../../../Technology/OperatingSystem/Docker/高级/Docker-网络" data-for="Technology/OperatingSystem/Docker/高级/Docker-网络">Docker 网络</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux"><button class="folder-button"><span class="folder-title">Linux</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/1.文化"><button class="folder-button"><span class="folder-title">1.文化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/1.文化"><li><a href="../../../../Technology/OperatingSystem/Linux/1.文化/GNU-and-Linux-历史与发展" data-for="Technology/OperatingSystem/Linux/1.文化/GNU-and-Linux-历史与发展">GNU&amp;Linux 历史与发展</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/1.文化/GNU-and-Linux-社区与文化" data-for="Technology/OperatingSystem/Linux/1.文化/GNU-and-Linux-社区与文化">GNU&amp;Linux 社区与文化</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/1.文化/开源软件的概念与重要性" data-for="Technology/OperatingSystem/Linux/1.文化/开源软件的概念与重要性">开源软件的概念与重要性</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/2.安装"><button class="folder-button"><span class="folder-title">2.安装</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/2.安装"><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/GRUB-引导程序" data-for="Technology/OperatingSystem/Linux/2.安装/GRUB-引导程序">GRUB 引导程序</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/Linux-下-0-1-手动安装-Arch-Linux" data-for="Technology/OperatingSystem/Linux/2.安装/Linux-下-0-1-手动安装-Arch-Linux">Linux 下 0-1 手动安装 Arch Linux</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/Linux-下源代码编译与安装实战" data-for="Technology/OperatingSystem/Linux/2.安装/Linux-下源代码编译与安装实战">Linux 下源代码编译与安装实战</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/Linux-发行版镜像" data-for="Technology/OperatingSystem/Linux/2.安装/Linux-发行版镜像">Linux 发行版镜像</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/Linux-安装和配置" data-for="Technology/OperatingSystem/Linux/2.安装/Linux-安装和配置">Linux 安装和配置</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/2.安装/Linux-无法启动排查指南" data-for="Technology/OperatingSystem/Linux/2.安装/Linux-无法启动排查指南">Linux 无法启动排查指南</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/3.基础操作"><button class="folder-button"><span class="folder-title">3.基础操作</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/3.基础操作"><li><a href="../../../../Technology/OperatingSystem/Linux/3.基础操作/Linux-包管理器" data-for="Technology/OperatingSystem/Linux/3.基础操作/Linux-包管理器">Linux 包管理器</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/3.基础操作/Shell-命令行操作" data-for="Technology/OperatingSystem/Linux/3.基础操作/Shell-命令行操作">Linux 命令行操作</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/3.基础操作/Linux-文件管理" data-for="Technology/OperatingSystem/Linux/3.基础操作/Linux-文件管理">Linux 文件管理</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/3.基础操作/Linux-环境变量" data-for="Technology/OperatingSystem/Linux/3.基础操作/Linux-环境变量">Linux 环境变量</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/3.基础操作/Linux-用户和权限" data-for="Technology/OperatingSystem/Linux/3.基础操作/Linux-用户和权限">Linux 用户和权限</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/4.系统管理"><button class="folder-button"><span class="folder-title">4.系统管理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/4.系统管理"><li><a href="../../../../Technology/OperatingSystem/Linux/4.系统管理/Linux-内核管理" data-for="Technology/OperatingSystem/Linux/4.系统管理/Linux-内核管理">Linux 内核管理</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/4.系统管理/Linux-基本配置" data-for="Technology/OperatingSystem/Linux/4.系统管理/Linux-基本配置">Linux 基本配置</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/4.系统管理/Linux-日志管理" data-for="Technology/OperatingSystem/Linux/4.系统管理/Linux-日志管理">Linux 日志管理</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/4.系统管理/Linux-服务管理" data-for="Technology/OperatingSystem/Linux/4.系统管理/Linux-服务管理">Linux 服务管理</a></li><li><a href="../../../../Technology/OperatingSystem/Linux/4.系统管理/Linux-系统启动详解" data-for="Technology/OperatingSystem/Linux/4.系统管理/Linux-系统启动详解">Linux 服务管理</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/5.安全配置"><button class="folder-button"><span class="folder-title">5.安全配置</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/5.安全配置"><li><a href="../../../../Technology/OperatingSystem/Linux/5.安全配置/Linux-系统安全与防护" data-for="Technology/OperatingSystem/Linux/5.安全配置/Linux-系统安全与防护">Linux 系统安全与防护</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/6.网络管理"><button class="folder-button"><span class="folder-title">6.网络管理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/6.网络管理"><li><a href="../../../../Technology/OperatingSystem/Linux/6.网络管理/Linux-网络管理" data-for="Technology/OperatingSystem/Linux/6.网络管理/Linux-网络管理">Linux 网络管理</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Linux/7.存储管理"><button class="folder-button"><span class="folder-title">7.存储管理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Linux/7.存储管理"><li><a href="../../../../Technology/OperatingSystem/Linux/7.存储管理/Linux-文件系统" data-for="Technology/OperatingSystem/Linux/7.存储管理/Linux-文件系统">Linux 文件系统</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Virtualization"><button class="folder-button"><span class="folder-title">Virtualization</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Virtualization"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Virtualization/1.虚拟化概述"><button class="folder-button"><span class="folder-title">1.虚拟化概述</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Virtualization/1.虚拟化概述"><li><a href="../../../../Technology/OperatingSystem/Virtualization/1.虚拟化概述/虚拟化平台简介" data-for="Technology/OperatingSystem/Virtualization/1.虚拟化概述/虚拟化平台简介">虚拟化平台简介</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/1.虚拟化概述/虚拟化概述" data-for="Technology/OperatingSystem/Virtualization/1.虚拟化概述/虚拟化概述">虚拟化概述</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Virtualization/2.KVM虚拟化"><button class="folder-button"><span class="folder-title">2.KVM虚拟化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Virtualization/2.KVM虚拟化"><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/1.-KVM-概述" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/1.-KVM-概述">1. KVM 概述</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/2.-KVM-安装配置" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/2.-KVM-安装配置">2. KVM 安装配置</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/3.-KVM-管理工具" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/3.-KVM-管理工具">3. KVM 管理工具</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/4.-KVM-网络配置" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/4.-KVM-网络配置">4. KVM 网络配置</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/5.-KVM-存储管理" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/5.-KVM-存储管理">5. KVM 存储管理</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/6.-KVM-性能优化" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/6.-KVM-性能优化">6. KVM 性能优化</a></li><li><a href="../../../../Technology/OperatingSystem/Virtualization/2.KVM虚拟化/7.-KVM-系统监控" data-for="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/7.-KVM-系统监控">7. KVM 系统监控</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Windows"><button class="folder-button"><span class="folder-title">Windows</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Windows"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/OperatingSystem/Windows/文化"><button class="folder-button"><span class="folder-title">文化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/OperatingSystem/Windows/文化"><li><a href="../../../../Technology/OperatingSystem/Windows/文化/微软及其Windows系统的历史发展" data-for="Technology/OperatingSystem/Windows/文化/微软及其Windows系统的历史发展">微软及其Windows系统的历史发展</a></li></ul></div></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage"><button class="folder-button"><span class="folder-title">ProgrammingLanguage</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python"><button class="folder-button"><span class="folder-title">Python</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/入门"><button class="folder-button"><span class="folder-title">入门</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/入门"><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/函数方法" data-for="Technology/ProgrammingLanguage/Python/入门/函数方法">函数方法</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/基础语法" data-for="Technology/ProgrammingLanguage/Python/入门/基础语法">基础语法</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/控制语句" data-for="Technology/ProgrammingLanguage/Python/入门/控制语句">控制语句</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/数据类型" data-for="Technology/ProgrammingLanguage/Python/入门/数据类型">数据类型</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/数据结构" data-for="Technology/ProgrammingLanguage/Python/入门/数据结构">数据结构</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/模块和包" data-for="Technology/ProgrammingLanguage/Python/入门/模块和包">模块和包</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/入门/面对对象" data-for="Technology/ProgrammingLanguage/Python/入门/面对对象">面对对象</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/文化"><button class="folder-button"><span class="folder-title">文化</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/文化"><li><a href="../../../../Technology/ProgrammingLanguage/Python/文化/发展历史" data-for="Technology/ProgrammingLanguage/Python/文化/发展历史">发展历史</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/文化/生命周期" data-for="Technology/ProgrammingLanguage/Python/文化/生命周期">生命周期</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/文化/社区文化" data-for="Technology/ProgrammingLanguage/Python/文化/社区文化">社区文化</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/文化/设计哲学" data-for="Technology/ProgrammingLanguage/Python/文化/设计哲学">设计哲学</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/文化/语言特性" data-for="Technology/ProgrammingLanguage/Python/文化/语言特性">语言特性</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块"><button class="folder-button"><span class="folder-title">模块</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块/WEB开发"><button class="folder-button"><span class="folder-title">WEB开发</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块/WEB开发"><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/WEB开发/Jinja-模板引擎" data-for="Technology/ProgrammingLanguage/Python/模块/WEB开发/Jinja-模板引擎">Jinja 模板引擎</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块/数据处理"><button class="folder-button"><span class="folder-title">数据处理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块/数据处理"><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/数据处理/configparser-配置文件解析器" data-for="Technology/ProgrammingLanguage/Python/模块/数据处理/configparser-配置文件解析器">configparser 配置文件解析器</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/数据处理/csv-文件读写" data-for="Technology/ProgrammingLanguage/Python/模块/数据处理/csv-文件读写">csv 文件读写</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/数据处理/json-编码和解码器" data-for="Technology/ProgrammingLanguage/Python/模块/数据处理/json-编码和解码器">json 编码和解码器</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块/文本处理"><button class="folder-button"><span class="folder-title">文本处理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块/文本处理"><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/文本处理/re-----正则表达式操作" data-for="Technology/ProgrammingLanguage/Python/模块/文本处理/re-----正则表达式操作">re --- 正则表达式操作</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块/系统交互"><button class="folder-button"><span class="folder-title">系统交互</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块/系统交互"><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/dotenv-环境变量管理" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/dotenv-环境变量管理">dotenv 环境变量管理</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/logging-日志记录工具" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/logging-日志记录工具">logging 日志记录工具</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/loguru-日志库" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/loguru-日志库">loguru 日志库</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/os-多种操作系统接口" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/os-多种操作系统接口">os 多种操作系统接口</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/subprocess-子进程管理" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/subprocess-子进程管理">subprocess 子进程管理</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/系统交互/sys-系统相关的形参和函数" data-for="Technology/ProgrammingLanguage/Python/模块/系统交互/sys-系统相关的形参和函数">sys 系统相关的形参和函数</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/模块/网络处理"><button class="folder-button"><span class="folder-title">网络处理</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/模块/网络处理"><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/网络处理/requests-HTTP-库" data-for="Technology/ProgrammingLanguage/Python/模块/网络处理/requests-HTTP-库">requests HTTP 库</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/网络处理/socket-底层网络接口" data-for="Technology/ProgrammingLanguage/Python/模块/网络处理/socket-底层网络接口">socket 底层网络接口</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/模块/网络处理/urllib-URL-处理模块" data-for="Technology/ProgrammingLanguage/Python/模块/网络处理/urllib-URL-处理模块">urllib URL 处理模块</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/进阶"><button class="folder-button"><span class="folder-title">进阶</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/进阶"><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/函数式编程" data-for="Technology/ProgrammingLanguage/Python/进阶/函数式编程">函数式编程</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/垃圾回收" data-for="Technology/ProgrammingLanguage/Python/进阶/垃圾回收">垃圾回收</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/并行和并发" data-for="Technology/ProgrammingLanguage/Python/进阶/并行和并发">并行和并发</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/异常处理" data-for="Technology/ProgrammingLanguage/Python/进阶/异常处理">异常处理</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/数据库操作" data-for="Technology/ProgrammingLanguage/Python/进阶/数据库操作">数据库操作</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/文件和IO操作" data-for="Technology/ProgrammingLanguage/Python/进阶/文件和IO操作">文件和IO操作</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/测试和调试" data-for="Technology/ProgrammingLanguage/Python/进阶/测试和调试">测试和调试</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/资源管理" data-for="Technology/ProgrammingLanguage/Python/进阶/资源管理">资源管理</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/进阶/面向对象进阶" data-for="Technology/ProgrammingLanguage/Python/进阶/面向对象进阶">面向对象</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/项目"><button class="folder-button"><span class="folder-title">项目</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/项目"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/项目/虚拟环境"><button class="folder-button"><span class="folder-title">虚拟环境</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/项目/虚拟环境"><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/pip" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/pip">pip</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/pipenv" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/pipenv">pipenv</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/poetry" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/poetry">poetry</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/pyenv" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/pyenv">pyenv</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/virtualenv" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/virtualenv">Virtualenv</a></li><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/虚拟环境/概述" data-for="Technology/ProgrammingLanguage/Python/项目/虚拟环境/概述">概述</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/ProgrammingLanguage/Python/项目/风格指南"><button class="folder-button"><span class="folder-title">风格指南</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/ProgrammingLanguage/Python/项目/风格指南"><li><a href="../../../../Technology/ProgrammingLanguage/Python/项目/风格指南/风格指南" data-for="Technology/ProgrammingLanguage/Python/项目/风格指南/风格指南">Python 风格指南</a></li></ul></div></li></ul></div></li></ul></div></li><li><a href="../../../../Technology/ProgrammingLanguage/home" data-for="Technology/ProgrammingLanguage/home">程序设计语言</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/SoftwareEngineering"><button class="folder-button"><span class="folder-title">SoftwareEngineering</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/SoftwareEngineering"><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/SoftwareEngineering/CI-and-CD"><button class="folder-button"><span class="folder-title">CI&amp;CD</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/SoftwareEngineering/CI-and-CD"><li><a href="../../../../Technology/SoftwareEngineering/CI-and-CD/GitHub-Actions" data-for="Technology/SoftwareEngineering/CI-and-CD/GitHub-Actions">GitHub Actions</a></li><li><a href="../../../../Technology/SoftwareEngineering/CI-and-CD/GitLab-Runner" data-for="Technology/SoftwareEngineering/CI-and-CD/GitLab-Runner">GitLab Runner</a></li><li><a href="../../../../Technology/SoftwareEngineering/CI-and-CD/Jenkins" data-for="Technology/SoftwareEngineering/CI-and-CD/Jenkins">Jenkins</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/SoftwareEngineering/协作规范"><button class="folder-button"><span class="folder-title">协作规范</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/SoftwareEngineering/协作规范"><li><a href="../../../../Technology/SoftwareEngineering/协作规范/8.交流反馈Issue" data-for="Technology/SoftwareEngineering/协作规范/8.交流反馈Issue">交流反馈Issue</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/1.关于Readme" data-for="Technology/SoftwareEngineering/协作规范/1.关于Readme">关于Readme</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/4.分支Branch" data-for="Technology/SoftwareEngineering/协作规范/4.分支Branch">分支Branch</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/2.开源协议License" data-for="Technology/SoftwareEngineering/协作规范/2.开源协议License">开源协议License</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/5.日志Commit" data-for="Technology/SoftwareEngineering/协作规范/5.日志Commit">日志Commit</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/7.注释Comments" data-for="Technology/SoftwareEngineering/协作规范/7.注释Comments">注释Comments</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/6.版本Tag" data-for="Technology/SoftwareEngineering/协作规范/6.版本Tag">版本Tag</a></li><li><a href="../../../../Technology/SoftwareEngineering/协作规范/3.贡献者协议Contributing" data-for="Technology/SoftwareEngineering/协作规范/3.贡献者协议Contributing">贡献者协议Contributing</a></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/SoftwareEngineering/技术文档"><button class="folder-button"><span class="folder-title">技术文档</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/SoftwareEngineering/技术文档"><li><a href="../../../../Technology/SoftwareEngineering/技术文档/3.命名约定" data-for="Technology/SoftwareEngineering/技术文档/3.命名约定">命名约定</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/5.文档内容" data-for="Technology/SoftwareEngineering/技术文档/5.文档内容">文档内容</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/6.文档结构" data-for="Technology/SoftwareEngineering/技术文档/6.文档结构">文档结构</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/2.标点符号" data-for="Technology/SoftwareEngineering/技术文档/2.标点符号">标点符号</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/1.简介" data-for="Technology/SoftwareEngineering/技术文档/1.简介">简介</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/4.语言风格" data-for="Technology/SoftwareEngineering/技术文档/4.语言风格">语言风格</a></li><li><a href="../../../../Technology/SoftwareEngineering/技术文档/7.附录资料" data-for="Technology/SoftwareEngineering/技术文档/7.附录资料">附录资料</a></li></ul></div></li></ul></div></li><li><div class="folder-container"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div data-folderpath="Technology/StructuresAlgorithms"><button class="folder-button"><span class="folder-title">StructuresAlgorithms</span></button></div></div><div class="folder-outer "><ul style="padding-left:1.4rem;" class="content" data-folderul="Technology/StructuresAlgorithms"><li><a href="../../../../Technology/StructuresAlgorithms/数据结构" data-for="Technology/StructuresAlgorithms/数据结构">数据结构</a></li><li><a href="../../../../Technology/StructuresAlgorithms/算法" data-for="Technology/StructuresAlgorithms/算法">算法</a></li></ul></div></li></ul></div></li><li><div class="folder-outer "><ul style="padding-left:0;" class="content" data-folderul></ul></div></li></ul></div></li><li id="explorer-end"></li></ul></div></div></div></div><footer class><p>Created with <a href="https://quartz.jzhao.xyz/">Quartz v4.3.1</a> © 2024</p><ul><li><a href="https://www.7wate.com">Home</a></li><li><a href="https://blog.7wate.com">Blog</a></li><li><a href="https://github.com/7wate">GitHub</a></li></ul></footer></div></body><script type="application/javascript">function c(){let t=this.parentElement;t.classList.toggle("is-collapsed");let l=t.classList.contains("is-collapsed")?this.scrollHeight:t.scrollHeight;t.style.maxHeight=l+"px";let o=t,e=t.parentElement;for(;e;){if(!e.classList.contains("callout"))return;let n=e.classList.contains("is-collapsed")?e.scrollHeight:e.scrollHeight+o.scrollHeight;e.style.maxHeight=n+"px",o=e,e=e.parentElement}}function i(){let t=document.getElementsByClassName("callout is-collapsible");for(let s of t){let l=s.firstElementChild;if(l){l.addEventListener("click",c),window.addCleanup(()=>l.removeEventListener("click",c));let e=s.classList.contains("is-collapsed")?l.scrollHeight:s.scrollHeight;s.style.maxHeight=e+"px"}}}document.addEventListener("nav",i);window.addEventListener("resize",i);
</script><script type="module">
let mermaidImport = undefined
document.addEventListener('nav', async () => {
if (document.querySelector("code.mermaid")) {
mermaidImport ||= await import('https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.7.0/mermaid.esm.min.mjs')
const mermaid = mermaidImport.default
const darkMode = document.documentElement.getAttribute('saved-theme') === 'dark'
mermaid.initialize({
startOnLoad: false,
securityLevel: 'loose',
theme: darkMode ? 'dark' : 'default'
})
await mermaid.run({
querySelector: '.mermaid'
})
}
});
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/contrib/copy-tex.min.js" type="application/javascript"></script><script src="../../../../postscript.js" type="module"></script></html>