Golang协程调度探究
前言这几天攻关了一下go协程的调度,然后写了这篇文章 这篇文章的工作量真挺大的,我看的也很累,找资料也很累 这篇文章,需要感谢《Go语言底层原理剖析》这本书的作者,这本书给了我很大启发 并且这本书写的非常好,这本书类似我这篇文章的大纲,对我非常有帮助! 希望大家支持这本书的作者! 我的Go系列已经完成如下部分 分别为 Golang协程基础 (已经完成!) Golang协程调度 (已经完成!) Golang协程控制 Golang协程通信 Golang垃圾回收机制 所以我会持续更新,大家请期待吧,爱你们! 1234567总是笃定成功必有收获每次都是竹篮打水得过且过总在幻想能写出什么旷世杰作咽下苦果,传道而授业解惑 协程的几种状态Gidle表示协程..
更多分享一下我的家庭网络布局
我的家庭网络拓扑图数据流部分网络核心部分是 Nano Pi R2S 这个软路由,经过一年调教,已经能适应我这里的一切网络需求了。主要运行了 Wireguard、流量监控、网路唤醒等服务。因为我们小区只有百兆网,所以性能暂时够用。几乎所有网络设备都通过中间这个交换机与软路由通讯,虽然不算什么好的交换机,但是同理,够用。数据中心是用 intel NUC8 搭建的家庭服务器,主要部署了 emby、Nextcloud、qbittorrent 等服务,满足了家庭观影、数据存储等需求。存储采用多个硬盘,目前放弃了阵列模式,家庭用的话还是单块盘来用性价比最高,经常冷备、热备就好。家庭服务器通过 FRP 服务把 Nextcloud 服务映射到公网,方便在外看家庭数据。主力机是一台 E3-1231 V3 的机器,为什么还在..
更多apt update 出现 cannot create /dev/null: Permission denied
解决方法原因是 /dev/null 设备可能被常规文件替换了,重新创建即可方法一重启就好了,重启后该设备会自动重新创建方法二手动重新创建该设备1rm -f /dev/null; mknod -m 666 /dev/null c 1 3重建之后看起来就正常了12345Hit:1 http://mirrors.tencentyun.com/ubuntu focal InReleaseHit:2 http://mirrors.tencentyun.com/ubuntu focal-security InReleaseHit:3 http://mirrors.tencentyun.com/ubuntu focal-updates InReleaseHit:4 http://ppa.launchpad.net/al..
更多Golang协程基础探究
前言最近我把Go重新过了一遍,特别是Go的协程这一块,我感觉任何事都是从简单到复杂 包括现在,所以我重新开始学习基础,后序我会出一个系列 分别为 Golang协程基础 (已经完成!) Golang协程调度 Golang协程控制 Golang协程通信 Golang垃圾回收机制 所以我会持续更新,大家请期待吧,爱你们! Go里的协程是什么写Go这么长时间了,在开发项目当中,感觉Golang的好处还是很多的 Golang为什么被推崇,核心就是在并发和协程方面有很大的优势 协程这个概念其实不陌生,我在大学看Python的时候就看过这方面的资料 就是轻量级的线程 但是Go的协程其实和Python又不太一样了,这里我还是认真讲一下协程是个什么玩意儿吧 进..
更多WSL 中出现 :Zone.Identifier 文件的原因和解决方法
因为使用 Windows 和 WSL 作为开发环境,经常出现 :Zone.Identifier 文件,所以写了这篇博客来记录其原因和解决方法。原因从 Windows 直接下载文件或移动文件到 WSL 目录时,会出现类似 :Zone.Identifier 的文件。其中包含了一些跟关联文件有关的元数据。该文件因为微软的 NTFS 功能而出现,虽然没有实际用途。但因为文件名包含 : 冒号,所以可能会破坏某些 Linux 脚本的运行。所以需要处理它。解决方法移动文件时,不要通过资源管理器,而是通过 VS Code,这样不会生成该文件;通过这条命令删除该文件:find . -name "*:Zone.Identifier" -type f -delete。参考链接Zone.Identifier Files when..
更多Python抓取博客记录,获取标题与url
在博客网站发布了一些博客。总共有四十多篇。现在查看这些博客需要翻页,不是很方便。想要弄出一个列表,把标题和链接展示出来。如果手动去复制粘贴,耗时耗力,也不够自动化。有没有什么自动化的方法呢?想到以前用python做过抓取的功能。开发环境:Python3.7PyCharm 2018.3.7 (Community Edition)macOS 11.4安装scrapy我们主要使用的框架是scrapy,官网 https://scrapy.org/ 如果需要换用清华的pip源,执行下面的命令12pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -Upip config set global.index-url https://pypi.tuna...
更多Golang 内存泄漏排查之旅
“业务提了个线上问题,麻烦你看一下。”自从我开始写 Golang 后端之后,可能是能力有限,我的服务总是会在意想不到的情况下变得异常,而我要做的事情就是解决这个问题。这次出现的问题看起来是运营平台后端服务的内存泄漏,那就先从内存曲线开始看起吧。突然暴增的曲线Grafana 平台给出的曲线大概符合这样的特征:有 8 个突变点,每次突变都会让内存猛然上升接近 500 MB,上涨到逼近容器上限后,突然回落到 100 MB(因为容器崩溃重启了)。静态检查尝试失败结合突变的时间,我搜了一下审计日志,发现业务上传了 8 次 Excel。但由于具体的上传日志在容器崩溃的时候丢失了,我不得不使用社会工程学通过 PM 直接给业务团队发消息拿到 Excel 文件。观察了一下,每个文件都有着 4w 条记录,解析完成后恰好占用了..
更多Mapuino - 一个硬件极客风的 WEB 访客地图显示摆件
Mapuino 是什么Mapuino 是一个简单的摆件,或者叫“玩具”。你可以在自己的个人博客、主页或者任何可以插入个性代码的社交网站(如 V2EX)上添加一行 URL,然后就可以在 Mapuino 上观赏全国哪些地方的人正在访问你的网站。Mapuino 不是什么Mapuino 不是生产力工具,它功能单一,仅供娱乐。但它真的可以给你的生活带来一些小乐趣。Mapuino 的历史故事2017 年秋学季,我上大二,有幸加入学校的学生 IT 创新创业区,并认识了 suruifu 同学,当时我所在的部门叫“物联网创新区”。圣诞前夜,suruifu 同学在创新区内给我分享了一个外国小哥的 youtube 视频。视频中,外国小哥做了一个圣诞树,神奇之处是,只要有人 ping 他的电脑 ip,圣诞树上就会随机亮起一个 L..
更多关于新拟物设计 Neumorphism
前段时间发现了一种叫新拟物的 UI 设计 Neumorphism,感觉很新鲜。于是研究的一番,本文将分享新拟物设计的相关知识。前言前段时间发现了一种叫新拟物的 UI 设计 Neumorphism,感觉很新鲜。于是研究的一番,本文将分享新拟物设计的相关知识。新拟物设计是什么新拟物的前身是 Skeuomorphism(拟物设计),或叫拟物化,即在界面中模仿现实物纹理材质的设计,让人们在使用界面时联想到现实物体的使用方式,由 Apple 公司最先提出。新拟物设计是拟物设计的一种新的思路,它的关注点不在于对现实世界和数字世界的对比和模拟,而关键点在于色调,新拟物设计关注于整个屏幕的颜色,并为用户提供一个完全独特的体验。比如你有一个音乐播放器界面,使用新拟物设计,这个界面的 UI 元素不是放置在背景之上而是在它后面..
更多vite+vue3下如何使用动态导入的svg-sprite
几个月前我刚接触vue3时就研究过,一直搞忘了分享。 起因我的vue项目一般都使用动态导入的svg-sprite,意思是:既要是个雪碧图,用<use> 标签复用;而且页面的svg应该是动态按需加载的。我觉得这样性能比较好,在vue2中实现比较简单,但是vue3+vite下我并未找到合适的解决方案,只有雪碧图没有动态导入。于是乎我就想自己做一个。 思路 就两点 首先要做一个vite plugin,作为一个loader加载.svg文件,读取svg文件的内容,类似raw-loader。 然后需要一个component,它去动态加载svg文件,并把svg文件的内容拼接到雪碧图里。 代码 vite.config.ts中这样写: import {defineConfig, Plugin} from '..
更多