关于协程的设计目的
最近有人问起我关于Go语言中协程的设计初衷问题,正好说一下我对这个玩意的想法,同时这个也算是面试中可能会问起的问题。 从操作系统的层面上来在,线程是由内核创建和管理,运行在内核态的一种数据结构。协程是由用户创建和管理,运行在用户态的一种数据结构。 ...
最近有人问起我关于Go语言中协程的设计初衷问题,正好说一下我对这个玩意的想法,同时这个也算是面试中可能会问起的问题。 从操作系统的层面上来在,线程是由内核创建和管理,运行在内核态的一种数据结构。协程是由用户创建和管理,运行在用户态的一种数据结构。 ...
好长时间没写blog了,这段时间暂时没有写代码,一直在倒腾软路由的事情。 不过多亏了软路由,我对网络知识的储备又增加了一些。 这篇文章是想好好讲一下关于Linux上的网络数据包的路由处理. 据我现在所了解到的知识,Linux上决定数据包路由流向的关键模块有两个, 第一个是RPDB(Routing Policy DataBase 路由策略数据库),第二个是netfilter/iptables,很多人会把netfilter/iptables直接称之为iptables,也没有问题,但是严格上来说还是分开为好,netfilter是内核中的一部分,提供了一组数据包的hook. iptables则是实现了这些hook,并且提供了在用户空间操作这些hook的办法. ...
这几天开始我有的时候登录mihoyo的游戏会出现1001_1等登录问题, 这个问题目前和OpenClash有关. 但是暂时不知道具体是什么原因导致的, 目前clash的p内核最新版本8.17是不能玩的. 就算登录上之后, 游戏的延迟也会莫名增加. 到999ms, 但是不会掉线. ...
这是我一年多前学会的一个方法, 关于如何找相关类型或者优秀的软件. Github上有许多的Awesome项目, 这些项目本来的目的就是推荐一些和你感兴趣技术的一些相关资源, 可以利用awesome项目来找各种各样的软件, 或者是开发套件. ...
最近了解到了WebTorrent这个软件, 这个是一个基于Web技术做的一个Torrent的下载器, 还能播放视频. 挺神奇的, 这年头Web都能做种了? 因为在我的印象里, 目前的Web技术是不支持原生TCP/UDP这些网络协议. ...
最近碰上了一个需求,要做一个桌面程序,功能是将一个文件格式解析成json,然后在图表上展示这个数据,但是这个文件可能有GB单位的大小,解析要防止爆内存,还有图形也要防止崩溃。 文件格式解析倒反而不是什么难点,主要是文件大小的问题以及格式,json是一种树状的类型,每个节点和上下文都是有关联的,如果全放内存中非常容易爆内存 ,但是这个数据结构的特性导致很难将已经解析好的一部分数据直接先持久化,不然存取是一个问题,所以持久化肯定需要一些媒介。 ...
这个问题烦了了我1个小时。 1fn parse_path_operation( 2 &mut self, 3 path: &str, 4 op: Option<Box<impl FnOnce(&mut Self) + ?Sized>>, 5 ) -> Result<bool, anyhow::Error> 6 7self.parse_path_operation(path, None::<Box<dyn FnOnce(&mut IDir)>>)?; 这里记录一下这个签名的正确用法。 下次学乖了,这种编译器大小未知的trait类型一定要用Box或者其他的智能指针包起来,我想写成这样的签名完全不行,虽然被调用方的签名能通过编译,但是调用方的签名始终有问题,网上找了半天,还是得用智能指针管用… ...
其实真不该写这个文章的,Vim我虽然算不上用的很多,但也用的不算少,可是我对Vim的快捷键一直都记不住,实际上如果记住了Vim的快捷键对于文本操作术的效率会有非常大的提升。 基本的操作我就不写了,比如保存什么的,主要是一些文本操作快捷键的记录。 ...
MacOS bilibili客户端 Amphetamine 防睡眠 Telegram for MacOS Wechat QQ Firefox ESR VSCode Jetbrains Homebrew Lepton 代码片段管理 Sequel Ace 数据库 Flow 🍅计时器 Maccy 剪贴板管理 Flux 护眼 Clash for Windows XCode Karabiner Dynamic Dark Mode CotEdit DBeaver Notion Enh AltTab Keka Windows bilibili客户端 Wechat QQ Bindzip Firefox ESR VSCode Jetbrains Lepton 代码片段管理 Flux 护眼 Clash for Windows Clash Verge (虽然和CFW一样是H5技术做的,但是用的是WebView) Fluent Search (这个对我来说比utools好用不少,可以搜索本地文件和浏览器记录) Kayviz 改键位 Auto Dark Mode DBeaver Mailspring (这个我还在找更好的代替品) Bindzip
这次又迁移到了NotionNext上,只需要编写Notion, 就可以同步更新到博客网站上. 我已经有点厌倦了通过脚本或者是Git推送来更新blog的过程. NotionNext是只能部署在Vercel上的,Vercel是一个类似github blog的静态网站的部署平台。 ...