diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 56641fb..8809519 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -14,7 +14,7 @@ "type": "markdown", "state": { "file": "10-中间件/Java NIO核心原理.md", - "mode": "preview", + "mode": "source", "source": false }, "icon": "lucide-file", @@ -198,18 +198,18 @@ }, "active": "fcbc762a80282002", "lastOpenFiles": [ - "10-中间件/零拷贝原理对比.md", - "10-中间件/Java NIO核心原理.md", - "10-中间件/Buffer核心属性.md", - "10-中间件/Selector多路复用模型.md", - "Java NIO三大核心组件架构.md", "10-中间件/Java NIO三大核心组件架构.excalidraw", - "10-中间件/Java NIO三大核心组件架构.md", "10-中间件/Netty核心原理.md", "10-中间件/Buffer核心属性.excalidraw", "10-中间件/零拷贝原理对比.excalidraw", - "README.md", + "10-中间件/零拷贝原理对比.md", "10-中间件/Selector多路复用模型.excalidraw", + "10-中间件/Selector多路复用模型.md", + "10-中间件/Java NIO核心原理.md", + "10-中间件/Buffer核心属性.md", + "Java NIO三大核心组件架构.md", + "10-中间件/Java NIO三大核心组件架构.md", + "README.md", "00-项目概述/项目概述.md", "questions/02-数据库/MyBatis核心原理.md", "Obsidian技能使用指南.md", @@ -228,7 +228,6 @@ "16-LeetCode Hot 100/完全平方数.md", "16-LeetCode Hot 100/最大正方形.md", "16-LeetCode Hot 100/柱状图中最大的矩形.md", - "16-LeetCode Hot 100/单词搜索.md", "16-LeetCode Hot 100", "00-项目概述", "questions/15-简历面试", diff --git a/10-中间件/Buffer核心属性.excalidraw b/10-中间件/Buffer核心属性.excalidraw deleted file mode 100644 index e7d4e6b..0000000 --- a/10-中间件/Buffer核心属性.excalidraw +++ /dev/null @@ -1,588 +0,0 @@ -{ - "type": "excalidraw", - "version": 2, - "source": "https://excalidraw.com", - "elements": [ - { - "id": "title", - "type": "text", - "x": 350, - "y": 30, - "width": 500, - "height": 35, - "angle": 0, - "strokeColor": "#1e40af", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 1, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Buffer 核心属性与操作方法", - "fontSize": 28, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Buffer 核心属性与操作方法", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "buffer-title", - "type": "text", - "x": 480, - "y": 100, - "width": 240, - "height": 30, - "angle": 0, - "strokeColor": "#1e40af", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 2, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Buffer 内存布局", - "fontSize": 24, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Buffer 内存布局", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "processed-box", - "type": "rectangle", - "x": 150, - "y": 160, - "width": 200, - "height": 80, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#b2f2bb", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 3, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "processed-label", - "type": "text", - "x": 200, - "y": 185, - "width": 100, - "height": 30, - "angle": 0, - "strokeColor": "#2b8a3e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 4, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "已处理数据", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "已处理数据", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "readwrite-box", - "type": "rectangle", - "x": 360, - "y": 160, - "width": 280, - "height": 80, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#a5d8ff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 5, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "readwrite-label", - "type": "text", - "x": 450, - "y": 185, - "width": 100, - "height": 30, - "angle": 0, - "strokeColor": "#1864ab", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 6, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "可读/写数据", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "可读/写数据", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "inaccessible-box", - "type": "rectangle", - "x": 650, - "y": 160, - "width": 200, - "height": 80, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "#ffc9c9", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 7, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "inaccessible-label", - "type": "text", - "x": 690, - "y": 185, - "width": 120, - "height": 30, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 8, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "不可访问", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "不可访问", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "mark-label", - "type": "text", - "x": 150, - "y": 255, - "width": 70, - "height": 25, - "angle": 0, - "strokeColor": "#f59e0b", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 9, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "mark", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "mark", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "position-label", - "type": "text", - "x": 360, - "y": 255, - "width": 100, - "height": 25, - "angle": 0, - "strokeColor": "#3b82f6", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 10, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "position", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "position", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "limit-label", - "type": "text", - "x": 640, - "y": 255, - "width": 70, - "height": 25, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 11, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "limit", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "limit", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "capacity-label", - "type": "text", - "x": 850, - "y": 255, - "width": 100, - "height": 25, - "angle": 0, - "strokeColor": "#7c3aed", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 12, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "capacity", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "capacity", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "methods-box", - "type": "rectangle", - "x": 150, - "y": 320, - "width": 700, - "height": 200, - "angle": 0, - "strokeColor": "#5c7cfa", - "backgroundColor": "#d0ebff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 13, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "methods-title", - "type": "text", - "x": 410, - "y": 335, - "width": 180, - "height": 30, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 14, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "核心操作方法", - "fontSize": 24, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "核心操作方法", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "method1", - "type": "text", - "x": 180, - "y": 385, - "width": 300, - "height": 50, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 15, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "mark「」\n标记当前 position 位置", - "fontSize": 18, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "mark「」\n标记当前 position 位置", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "method2", - "type": "text", - "x": 510, - "y": 385, - "width": 300, - "height": 50, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 16, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "reset「」\n恢复到 mark 位置", - "fontSize": 18, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "reset「」\n恢复到 mark 位置", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "method3", - "type": "text", - "x": 180, - "y": 450, - "width": 300, - "height": 50, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 17, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "clear「」\nposition=0, limit=capacity", - "fontSize": 18, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "clear「」\nposition=0, limit=capacity", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "method4", - "type": "text", - "x": 510, - "y": 450, - "width": 300, - "height": 50, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 18, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "flip「」\nlimit=position, position=0", - "fontSize": 18, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "flip「」\nlimit=position, position=0", - "autoResize": true, - "lineHeight": 1.25 - } - ], - "appState": { - "gridSize": null, - "viewBackgroundColor": "#ffffff" - }, - "files": {} -} \ No newline at end of file diff --git a/10-中间件/Java NIO三大核心组件架构.excalidraw b/10-中间件/Java NIO三大核心组件架构.excalidraw index c970dcd..0c488d8 100644 --- a/10-中间件/Java NIO三大核心组件架构.excalidraw +++ b/10-中间件/Java NIO三大核心组件架构.excalidraw @@ -1,520 +1,678 @@ { - "type": "excalidraw", - "version": 2, - "source": "https://excalidraw.com", - "elements": [ - { - "id": "title", - "type": "text", - "x": 400, - "y": 30, - "width": 400, - "height": 35, - "angle": 0, - "strokeColor": "#1e40af", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 1, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Java NIO 三大核心组件", - "fontSize": 28, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Java NIO 三大核心组件", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "channel-box", - "type": "rectangle", - "x": 150, - "y": 150, - "width": 220, - "height": 140, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#a5d8ff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 2, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "channel-title", - "type": "text", - "x": 215, - "y": 165, - "width": 90, - "height": 30, - "angle": 0, - "strokeColor": "#1864ab", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 3, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Channel", - "fontSize": 24, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Channel", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "channel-desc", - "type": "text", - "x": 160, - "y": 210, - "width": 200, - "height": 65, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 4, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "数据通道\n双向数据流\n非阻塞I/O", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "数据通道\n双向数据流\n非阻塞I/O", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "buffer-box", - "type": "rectangle", - "x": 830, - "y": 150, - "width": 220, - "height": 140, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#b2f2bb", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 5, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "buffer-title", - "type": "text", - "x": 895, - "y": 165, - "width": 90, - "height": 30, - "angle": 0, - "strokeColor": "#2b8a3e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 6, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Buffer", - "fontSize": 24, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Buffer", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "buffer-desc", - "type": "text", - "x": 840, - "y": 210, - "width": 200, - "height": 65, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 7, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "数据容器\n数据存储\n读写切换", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "数据容器\n数据存储\n读写切换", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "selector-box", - "type": "rectangle", - "x": 490, - "y": 450, - "width": 220, - "height": 140, - "angle": 0, - "strokeColor": "#f59e0b", - "backgroundColor": "#ffd8a8", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 8, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "selector-title", - "type": "text", - "x": 545, - "y": 465, - "width": 110, - "height": 30, - "angle": 0, - "strokeColor": "#e67700", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 9, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Selector", - "fontSize": 24, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Selector", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "selector-desc", - "type": "text", - "x": 500, - "y": 510, - "width": 200, - "height": 65, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 10, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "多路复用器\n事件监听\n单线程管理多连接", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "多路复用器\n事件监听\n单线程管理多连接", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "arrow-channel-buffer", - "type": "arrow", - "x": 370, - "y": 220, - "width": 450, - "height": 0, - "angle": 0, - "strokeColor": "#3b82f6", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 2}, - "seed": 11, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "points": [[0, 0], [450, 0]], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "id": "label-read-write", - "type": "text", - "x": 545, - "y": 195, - "width": 100, - "height": 20, - "angle": 0, - "strokeColor": "#3b82f6", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 12, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "数据读写", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "数据读写", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "arrow-channel-selector", - "type": "arrow", - "x": 260, - "y": 290, - "width": 260, - "height": 150, - "angle": 0, - "strokeColor": "#f59e0b", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "dashed", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 2}, - "seed": 13, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "points": [[0, 0], [260, 150]], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "id": "label-register", - "type": "text", - "x": 345, - "y": 350, - "width": 100, - "height": 20, - "angle": 0, - "strokeColor": "#f59e0b", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 14, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "注册事件", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "注册事件", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "arrow-selector-channel", - "type": "arrow", - "x": 710, - "y": 450, - "width": 250, - "height": 130, - "angle": 0, - "strokeColor": "#f59e0b", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 2}, - "seed": 15, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "points": [[0, 0], [-250, -130]], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "id": "label-dispatch", - "type": "text", - "x": 545, - "y": 390, - "width": 100, - "height": 20, - "angle": 0, - "strokeColor": "#f59e0b", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 16, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "事件分发", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "事件分发", - "autoResize": true, - "lineHeight": 1.25 - } - ], - "appState": { - "gridSize": null, - "viewBackgroundColor": "#ffffff" - }, - "files": {} + "type": "excalidraw", + "version": 2, + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.20.6", + "elements": [ + { + "id": "title", + "type": "text", + "x": 400, + "y": 30, + "width": 306.87994384765625, + "height": 35, + "angle": 0, + "strokeColor": "#1e40af", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": null, + "seed": 1, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "text": "Java NIO 三大核心组件", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Java NIO 三大核心组件", + "autoResize": true, + "lineHeight": 1.25, + "versionNonce": 934674734, + "index": "a0", + "frameId": null, + "hasTextLink": false, + "rawText": "" + }, + { + "id": "channel-box", + "type": "rectangle", + "x": 150, + "y": 150, + "width": 220, + "height": 140, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": { + "type": 3 + }, + "seed": 2, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "versionNonce": 1200124082, + "index": "a1", + "frameId": null, + "hasTextLink": false + }, + { + "id": "WUWQQFAl", + "type": "text", + "x": 215, + "y": 165, + "width": 86.06393432617188, + "height": 30, + "angle": 0, + "strokeColor": "#1864ab", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": null, + "seed": 3, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "text": "Channel", + "fontSize": 24, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Channel", + "autoResize": true, + "lineHeight": 1.25, + "versionNonce": 670673774, + "index": "a2", + "frameId": null, + "hasTextLink": false, + "rawText": "" + }, + { + "id": "QFgWpovs", + "type": "text", + "x": 160, + "y": 210.17819684651062, + "width": 80, + "height": 60, + "angle": 0, + "strokeColor": "#374151", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": null, + "seed": 4, + "version": 3, + "isDeleted": false, + "boundElements": [], + "updated": 1772940885556, + "link": null, + "locked": false, + "text": "数据通道\n双向数据流\n非阻塞I/O", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "数据通道\n双向数据流\n非阻塞I/O", + "autoResize": true, + "lineHeight": 1.25, + "versionNonce": 1563719794, + "index": "a3", + "frameId": null, + "hasTextLink": false, + "rawText": "" + }, + { + "id": "buffer-box", + "type": "rectangle", + "x": 830, + "y": 150, + "width": 220, + "height": 140, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": { + "type": 3 + }, + "seed": 5, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "versionNonce": 516820398, + "index": "a4", + "frameId": null, + "hasTextLink": false + }, + { + "id": "HHe1ugZH", + "type": "text", + "x": 895, + "y": 165, + "width": 75.86393737792969, + "height": 30, + "angle": 0, + "strokeColor": "#2b8a3e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": null, + "seed": 6, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "text": "Buffer", + "fontSize": 24, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Buffer", + "autoResize": true, + "lineHeight": 1.25, + "versionNonce": 119893042, + "index": "a5", + "frameId": null, + "hasTextLink": false, + "rawText": "" + }, + { + "id": "7Gq30uCz", + "type": "text", + "x": 840, + "y": 210, + "width": 64, + "height": 60, + "angle": 0, + "strokeColor": "#374151", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": null, + "seed": 7, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "text": "数据容器\n数据存储\n读写切换", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "数据容器\n数据存储\n读写切换", + "autoResize": true, + "lineHeight": 1.25, + "versionNonce": 2036082670, + "index": "a6", + "frameId": null, + "hasTextLink": false, + "rawText": "" + }, + { + "id": "selector-box", + "type": "rectangle", + "x": 490, + "y": 450, + "width": 220, + "height": 140, + "angle": 0, + "strokeColor": "#f59e0b", + "backgroundColor": "#ffd8a8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": { + "type": 3 + }, + "seed": 8, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "versionNonce": 2009929202, + "index": "a7", + "frameId": null, + "hasTextLink": false + }, + { + "id": "QB6vfwLt", + "type": "text", + "x": 545, + "y": 465, + "width": 95.75991821289062, + "height": 30, + "angle": 0, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": null, + "seed": 9, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "text": "Selector", + "fontSize": 24, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "Selector", + "autoResize": true, + "lineHeight": 1.25, + "versionNonce": 128776750, + "index": "a8", + "frameId": null, + "hasTextLink": false, + "rawText": "" + }, + { + "id": "1NOeMBmL", + "type": "text", + "x": 500, + "y": 510, + "width": 128, + "height": 60, + "angle": 0, + "strokeColor": "#374151", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": null, + "seed": 10, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "text": "多路复用器\n事件监听\n单线程管理多连接", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "多路复用器\n事件监听\n单线程管理多连接", + "autoResize": true, + "lineHeight": 1.25, + "versionNonce": 1364821938, + "index": "a9", + "frameId": null, + "hasTextLink": false, + "rawText": "" + }, + { + "id": "arrow-channel-buffer", + "type": "arrow", + "x": 370, + "y": 220, + "width": 450, + "height": 0, + "angle": 0, + "strokeColor": "#3b82f6", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": { + "type": 2 + }, + "seed": 11, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 450, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "versionNonce": 816415854, + "index": "aA", + "frameId": null, + "hasTextLink": false + }, + { + "id": "y4PVGoYN", + "type": "text", + "x": 545, + "y": 195, + "width": 64, + "height": 20, + "angle": 0, + "strokeColor": "#3b82f6", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": null, + "seed": 12, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "text": "数据读写", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "数据读写", + "autoResize": true, + "lineHeight": 1.25, + "versionNonce": 737263986, + "index": "aB", + "frameId": null, + "hasTextLink": false, + "rawText": "" + }, + { + "id": "arrow-channel-selector", + "type": "arrow", + "x": 260, + "y": 290, + "width": 260, + "height": 150, + "angle": 0, + "strokeColor": "#f59e0b", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": { + "type": 2 + }, + "seed": 13, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 260, + 150 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "versionNonce": 370853550, + "index": "aC", + "frameId": null, + "hasTextLink": false + }, + { + "id": "WhZFanNR", + "type": "text", + "x": 345, + "y": 350, + "width": 64, + "height": 20, + "angle": 0, + "strokeColor": "#f59e0b", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": null, + "seed": 14, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "text": "注册事件", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "注册事件", + "autoResize": true, + "lineHeight": 1.25, + "versionNonce": 48022322, + "index": "aD", + "frameId": null, + "hasTextLink": false, + "rawText": "" + }, + { + "id": "arrow-selector-channel", + "type": "arrow", + "x": 710, + "y": 450, + "width": 250, + "height": 130, + "angle": 0, + "strokeColor": "#f59e0b", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": { + "type": 2 + }, + "seed": 15, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -250, + -130 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "versionNonce": 950649070, + "index": "aE", + "frameId": null, + "hasTextLink": false + }, + { + "id": "QItxiuFB", + "type": "text", + "x": 545, + "y": 390, + "width": 64, + "height": 20, + "angle": 0, + "strokeColor": "#f59e0b", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "roundness": null, + "seed": 16, + "version": 2, + "isDeleted": false, + "boundElements": [], + "updated": 1772940884174, + "link": null, + "locked": false, + "text": "事件分发", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "事件分发", + "autoResize": true, + "lineHeight": 1.25, + "versionNonce": 1350667506, + "index": "aF", + "frameId": null, + "hasTextLink": false, + "rawText": "" + } + ], + "appState": { + "theme": "light", + "viewBackgroundColor": "#ffffff", + "currentItemStrokeColor": "#1e1e1e", + "currentItemBackgroundColor": "transparent", + "currentItemFillStyle": "solid", + "currentItemStrokeWidth": 2, + "currentItemStrokeStyle": "solid", + "currentItemRoughness": 1, + "currentItemOpacity": 100, + "currentItemFontFamily": 5, + "currentItemFontSize": 20, + "currentItemTextAlign": "left", + "currentItemStartArrowhead": null, + "currentItemEndArrowhead": "arrow", + "currentItemArrowType": "round", + "currentItemFrameRole": null, + "scrollX": -126.31591366168612, + "scrollY": 37.49614013341022, + "zoom": { + "value": 1.271417 + }, + "currentItemRoundness": "round", + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "gridColor": { + "Bold": "rgba(217, 217, 217, 0.5)", + "Regular": "rgba(230, 230, 230, 0.5)" + }, + "currentStrokeOptions": null, + "frameRendering": { + "enabled": true, + "clip": true, + "name": true, + "outline": true, + "markerName": true, + "markerEnabled": true + }, + "objectsSnapModeEnabled": false, + "activeTool": { + "type": "selection", + "customType": null, + "locked": false, + "fromSelection": false, + "lastActiveTool": null + }, + "disableContextMenu": false + }, + "files": {} } \ No newline at end of file diff --git a/10-中间件/Selector多路复用模型.excalidraw b/10-中间件/Selector多路复用模型.excalidraw deleted file mode 100644 index 9dc97e5..0000000 --- a/10-中间件/Selector多路复用模型.excalidraw +++ /dev/null @@ -1,499 +0,0 @@ -{ - "type": "excalidraw", - "version": 2, - "source": "https://excalidraw.com", - "elements": [ - { - "id": "title", - "type": "text", - "x": 400, - "y": 30, - "width": 400, - "height": 35, - "angle": 0, - "strokeColor": "#1e40af", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 1, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Selector 多路复用模型", - "fontSize": 28, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Selector 多路复用模型", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "selector-container", - "type": "rectangle", - "x": 200, - "y": 120, - "width": 800, - "height": 250, - "angle": 0, - "strokeColor": "#f59e0b", - "backgroundColor": "#fff3bf", - "fillStyle": "solid", - "strokeWidth": 3, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 30, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 2, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "selector-box", - "type": "rectangle", - "x": 480, - "y": 145, - "width": 240, - "height": 80, - "angle": 0, - "strokeColor": "#e67700", - "backgroundColor": "#ffd8a8", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 3, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "selector-text", - "type": "text", - "x": 535, - "y": 160, - "width": 130, - "height": 50, - "angle": 0, - "strokeColor": "#e67700", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 4, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Selector\nselect「」等待", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Selector\nselect「」等待", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "channel1-box", - "type": "rectangle", - "x": 250, - "y": 270, - "width": 120, - "height": 60, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#a5d8ff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 5, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "channel1-text", - "type": "text", - "x": 275, - "y": 285, - "width": 70, - "height": 30, - "angle": 0, - "strokeColor": "#1864ab", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 6, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Channel1\n就绪", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Channel1\n就绪", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "channel2-box", - "type": "rectangle", - "x": 440, - "y": 270, - "width": 120, - "height": 60, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#a5d8ff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 7, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "channel2-text", - "type": "text", - "x": 465, - "y": 285, - "width": 70, - "height": 30, - "angle": 0, - "strokeColor": "#1864ab", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 8, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Channel2\n就绪", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Channel2\n就绪", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "channel3-box", - "type": "rectangle", - "x": 630, - "y": 270, - "width": 120, - "height": 60, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#a5d8ff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 9, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "channel3-text", - "type": "text", - "x": 655, - "y": 285, - "width": 70, - "height": 30, - "angle": 0, - "strokeColor": "#1864ab", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 10, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Channel3\n就绪", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Channel3\n就绪", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "channel-dots", - "type": "text", - "x": 800, - "y": 285, - "width": 50, - "height": 30, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 11, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "...", - "fontSize": 24, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "...", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "eventloop-box", - "type": "rectangle", - "x": 400, - "y": 420, - "width": 400, - "height": 120, - "angle": 0, - "strokeColor": "#7c3aed", - "backgroundColor": "#d0bfff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 12, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "eventloop-title", - "type": "text", - "x": 520, - "y": 435, - "width": 160, - "height": 30, - "angle": 0, - "strokeColor": "#5f3dc4", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 13, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Event Loop", - "fontSize": 24, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Event Loop", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "eventloop-desc", - "type": "text", - "x": 420, - "y": 480, - "width": 360, - "height": 45, - "angle": 0, - "strokeColor": "#374151", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 14, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "• select「」 - 等待就绪事件\n• process「」 - 处理事件\n• repeat - 循环执行", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "• select「」 - 等待就绪事件\n• process「」 - 处理事件\n• repeat - 循环执行", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "arrow-thread", - "type": "arrow", - "x": 600, - "y": 370, - "width": 0, - "height": 40, - "angle": 0, - "strokeColor": "#7c3aed", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 3, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 2}, - "seed": 15, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "points": [[0, 0], [0, 40]], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "id": "label-onethread", - "type": "text", - "x": 615, - "y": 380, - "width": 100, - "height": 20, - "angle": 0, - "strokeColor": "#7c3aed", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 16, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "单线程管理", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "单线程管理", - "autoResize": true, - "lineHeight": 1.25 - } - ], - "appState": { - "gridSize": null, - "viewBackgroundColor": "#ffffff" - }, - "files": {} -} \ No newline at end of file diff --git a/10-中间件/零拷贝原理对比.excalidraw b/10-中间件/零拷贝原理对比.excalidraw deleted file mode 100644 index 40d1c68..0000000 --- a/10-中间件/零拷贝原理对比.excalidraw +++ /dev/null @@ -1,1085 +0,0 @@ -{ - "type": "excalidraw", - "version": 2, - "source": "https://excalidraw.com", - "elements": [ - { - "id": "title", - "type": "text", - "x": 350, - "y": 20, - "width": 500, - "height": 35, - "angle": 0, - "strokeColor": "#1e40af", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 1, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "零拷贝 vs 传统 I/O", - "fontSize": 28, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "零拷贝 vs 传统 I/O", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "traditional-box", - "type": "rectangle", - "x": 50, - "y": 100, - "width": 500, - "height": 400, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "#ffe3e3", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 30, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 2, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "traditional-title", - "type": "text", - "x": 150, - "y": 120, - "width": 300, - "height": 30, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 3, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "传统 I/O「4次拷贝, 4次切换」", - "fontSize": 22, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "传统 I/O「4次拷贝, 4次切换」", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "disk-box", - "type": "rectangle", - "x": 100, - "y": 180, - "width": 120, - "height": 50, - "angle": 0, - "strokeColor": "#5c7cfa", - "backgroundColor": "#d0ebff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 4, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "disk-text", - "type": "text", - "x": 130, - "y": 190, - "width": 60, - "height": 30, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 5, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "磁盘", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "磁盘", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "kernel-box", - "type": "rectangle", - "x": 100, - "y": 280, - "width": 120, - "height": 50, - "angle": 0, - "strokeColor": "#f59e0b", - "backgroundColor": "#ffd8a8", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 6, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "kernel-text", - "type": "text", - "x": 110, - "y": 290, - "width": 100, - "height": 30, - "angle": 0, - "strokeColor": "#e67700", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 7, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "内核缓冲", - "fontSize": 18, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "内核缓冲", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "user-box", - "type": "rectangle", - "x": 100, - "y": 380, - "width": 120, - "height": 50, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#b2f2bb", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 8, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "user-text", - "type": "text", - "x": 110, - "y": 390, - "width": 100, - "height": 30, - "angle": 0, - "strokeColor": "#2b8a3e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 9, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "用户缓冲", - "fontSize": 18, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "用户缓冲", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "socket-box", - "type": "rectangle", - "x": 380, - "y": 280, - "width": 120, - "height": 50, - "angle": 0, - "strokeColor": "#7c3aed", - "backgroundColor": "#d0bfff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 10, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "socket-text", - "type": "text", - "x": 390, - "y": 290, - "width": 100, - "height": 30, - "angle": 0, - "strokeColor": "#5f3dc4", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 11, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "Socket缓冲", - "fontSize": 18, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "Socket缓冲", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "nic-box", - "type": "rectangle", - "x": 380, - "y": 180, - "width": 120, - "height": 50, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "#ffc9c9", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 12, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "nic-text", - "type": "text", - "x": 400, - "y": 190, - "width": 80, - "height": 30, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 13, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "网卡", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "网卡", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "arrow1", - "type": "arrow", - "x": 160, - "y": 230, - "width": 0, - "height": 40, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 2}, - "seed": 14, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "points": [[0, 0], [0, 40]], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "id": "label1", - "type": "text", - "x": 175, - "y": 240, - "width": 80, - "height": 20, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 15, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "① DMA", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "① DMA", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "arrow2", - "type": "arrow", - "x": 220, - "y": 305, - "width": 120, - "height": 60, - "angle": 0, - "strokeColor": "#e67700", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 2}, - "seed": 16, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "points": [[0, 0], [120, 60]], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "id": "label2", - "type": "text", - "x": 260, - "y": 320, - "width": 80, - "height": 20, - "angle": 0, - "strokeColor": "#e67700", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 17, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "② CPU", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "② CPU", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "arrow3", - "type": "arrow", - "x": 220, - "y": 395, - "width": 120, - "height": -60, - "angle": 0, - "strokeColor": "#e67700", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 2}, - "seed": 18, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "points": [[0, 0], [120, -60]], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "id": "label3", - "type": "text", - "x": 260, - "y": 340, - "width": 80, - "height": 20, - "angle": 0, - "strokeColor": "#e67700", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 19, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "③ CPU", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "③ CPU", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "arrow4", - "type": "arrow", - "x": 440, - "y": 280, - "width": 0, - "height": -40, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 2}, - "seed": 20, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "points": [[0, 0], [0, -40]], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "id": "label4", - "type": "text", - "x": 455, - "y": 240, - "width": 80, - "height": 20, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 21, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "④ DMA", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "④ DMA", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "zerocopy-box", - "type": "rectangle", - "x": 650, - "y": 100, - "width": 500, - "height": 400, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#d3f9d8", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 30, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 22, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "zerocopy-title", - "type": "text", - "x": 780, - "y": 120, - "width": 240, - "height": 30, - "angle": 0, - "strokeColor": "#2b8a3e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 23, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "零拷贝「2次拷贝, 2次切换」", - "fontSize": 22, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "零拷贝「2次拷贝, 2次切换」", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "disk2-box", - "type": "rectangle", - "x": 750, - "y": 180, - "width": 120, - "height": 50, - "angle": 0, - "strokeColor": "#5c7cfa", - "backgroundColor": "#d0ebff", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 24, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "disk2-text", - "type": "text", - "x": 780, - "y": 190, - "width": 60, - "height": 30, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 25, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "磁盘", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "磁盘", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "kernel2-box", - "type": "rectangle", - "x": 750, - "y": 350, - "width": 120, - "height": 50, - "angle": 0, - "strokeColor": "#f59e0b", - "backgroundColor": "#ffd8a8", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 26, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "kernel2-text", - "type": "text", - "x": 760, - "y": 360, - "width": 100, - "height": 30, - "angle": 0, - "strokeColor": "#e67700", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 27, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "内核缓冲", - "fontSize": 18, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "内核缓冲", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "nic2-box", - "type": "rectangle", - "x": 980, - "y": 180, - "width": 120, - "height": 50, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "#ffc9c9", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 28, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "nic2-text", - "type": "text", - "x": 1000, - "y": 190, - "width": 80, - "height": 30, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 29, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "网卡", - "fontSize": 20, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "网卡", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "arrow5", - "type": "arrow", - "x": 810, - "y": 230, - "width": 0, - "height": 110, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 3, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 2}, - "seed": 30, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "points": [[0, 0], [0, 110]], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "id": "label5", - "type": "text", - "x": 825, - "y": 275, - "width": 80, - "height": 20, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 31, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "① DMA", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "① DMA", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "arrow6", - "type": "arrow", - "x": 870, - "y": 350, - "width": 160, - "height": -120, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 3, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 2}, - "seed": 32, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "points": [[0, 0], [160, -120]], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "id": "label6", - "type": "text", - "x": 920, - "y": 280, - "width": 80, - "height": 20, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 33, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "② DMA", - "fontSize": 16, - "fontFamily": 5, - "textAlign": "left", - "verticalAlign": "middle", - "containerId": null, - "originalText": "② DMA", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "benefit-box", - "type": "rectangle", - "x": 700, - "y": 430, - "width": 400, - "height": 50, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#b2f2bb", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": {"type": 3}, - "seed": 34, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false - }, - { - "id": "benefit-text", - "type": "text", - "x": 740, - "y": 440, - "width": 320, - "height": 30, - "angle": 0, - "strokeColor": "#2b8a3e", - "backgroundColor": "transparent", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, - "seed": 35, - "version": 1, - "isDeleted": false, - "boundElements": null, - "updated": 1, - "link": null, - "locked": false, - "text": "优势: 减少2次CPU拷贝, 减少2次上下文切换", - "fontSize": 18, - "fontFamily": 5, - "textAlign": "center", - "verticalAlign": "middle", - "containerId": null, - "originalText": "优势: 减少2次CPU拷贝, 减少2次上下文切换", - "autoResize": true, - "lineHeight": 1.25 - } - ], - "appState": { - "gridSize": null, - "viewBackgroundColor": "#ffffff" - }, - "files": {} -} \ No newline at end of file