工具应用:终端的选择从iTerm2到Alacritty
最近把用了五年的 iTerm2 换成了 Alacritty——一个基于 Rust 编写、使用 OpenGL 加速的跨平台终端,大小仅 6M,号称“全球最快的终端仿真器”。实际体验下来,响应速度确实非常流畅。 安装 Alacritty你可以从 GitH...
最近把用了五年的 iTerm2 换成了 Alacritty——一个基于 Rust 编写、使用 OpenGL 加速的跨平台终端,大小仅 6M,号称“全球最快的终端仿真器”。实际体验下来,响应速度确实非常流畅。 安装 Alacritty你可以从 GitH...
概念分析:Hash:通常翻译为“散列”,或“哈希”;就是把任意长度的二进制数据,通过散列算法,变换成固定长度的输出,即该输出就是散列值。 哈希冲突(碰撞): 指不同的数据,得到了同样的散列值,即为发生冲突(碰撞)。 Hash中的算法 也称消息摘要算法...
问题向导 问题1:如何实现浏览器的前进和后退功能? 问题描述:浏览器的前进、后退功能,我想你肯定很熟悉吧?当你依次访问完一串页面 a-b-c 之后,点击浏览器的后退按钮,就可以查看之前浏览过的页面 b 和 a。当你后退到页面 a,点击前进按钮,就可以...
问题向导 问题1:线程池没有空闲线程时,新的任务请求 线程资源时,线程池该如何处理?各种处理策略又是如何实现的呢? 思路: 处理策略一:非阻塞的处理方式,直接拒绝任务请求 处理策略二:阻塞的处理方式,将请求排队,等到有空闲线程时,取出排队的请求继续处...
在Python的世界里,我们每天都在和 list、tuple、dict、set 打交道。但你有没有想过: 为什么元组比列表快? 字典为什么查找那么高效? 列表扩容背后的策略是什么? set 真的是“无序”的吗? 这些看似基础的问题,其实都源于Py...
问题向导: 问题1:如何实现LRU缓存淘汰算法? 思路: 维护一个有序的单链表,越靠近链表尾部的结点是越早之前访问的,当有一个新的数据被访问时,从链表头开始顺序遍历链表。 实现: 如果在此数据之前已经被缓存在链表中了,遍历得到这个数据对应的结...
在日常Python开发中,文件路径操作是绕不开的话题。你是否还在使用os.path.join()拼接路径?是否还在为Windows和Linux的路径分隔符头疼?是否期待一种更Pythonic的方式来处理路径? 先来看一个直观的对比,即使你现在还不熟悉...
概念与原理数组(Array)是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。数组可以分为静态数组和动态数组两大类。 静态数组:是一块连续的内存空间,我们可以通过索引来访问这块内存空间中的元素,这也是数组的原始形态。 动态...
本周读到了一篇文章《Python has had async for 10 years – why isn’t it more popular?》,深有感触,文章提出了一个值得深思的问题:Python 早在 2015 年就引入了 async 和 aw...
数据结构的分类常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从逻辑结构和物理结构两个维度进行分类。 逻辑结构:线性与非线性逻辑结构主要描述的是数据元素之间的逻辑关系,它可以分为线性和非线性两大类。简言之,线性结构指数据在逻辑关系...