GitHub Actions
不出意外的话,在百度上搜索GitHub Actions 自动部署
,大概率会得到阮一峰老师的GitHub Actions 入门教程。然正如费曼先生所言:凡我不能创造,我就不能理解。这里记录一下在尽量不采用外部Actions 的情况下如何一步一步搭建本仓库的。
不出意外的话,在百度上搜索GitHub Actions 自动部署
,大概率会得到阮一峰老师的GitHub Actions 入门教程。然正如费曼先生所言:凡我不能创造,我就不能理解。这里记录一下在尽量不采用外部Actions 的情况下如何一步一步搭建本仓库的。
关于容器技术的原理,可以参考造轮子系列-手写docker。通过容器技术,可以将我们不同服务的运行环境隔离开来,避免不必要的不兼容问题。
容器在Linux 可以理解为一个独立的、具有隔离的运行环境的进程。
处于跨平台考虑,仅记录multiprocessing 库的用法
因为Python 中的多线程在CPU 密集型的任务中会变成线性的,并不能充分发挥多核处理器的优势。所以我们可以通过多进程来进行并行任务,并且我们还可以通过管道、共享内存、进程锁等机制来实现进程间的数据共享。
在网络上看到一个神经网络将图片转动漫风格的库,但是作者并没有公布最新版的源码。下载试用后发现软件功能挺好,但是在图片转换时会卡死主界面。看Issues 时,网友提到可以通过逆向工程提取*.onxx.zip
文件的解压密码。在提取密码的同时,发现也能看到部分源码,于是想着也许可以自己动手修复一下。
本文受How to terminate running Python threads using signals 文章启发,但只保留了多线程相关的部分。
起因是最近想用Python 模拟信号发生器的功能,自然需要通过主线程控制子线程发送数据(开始,暂停,继续,停止等状态)。第一版是通过lock
锁加上各种标志属性来实现的,总感觉思路不太清晰。于是参考上面的链接,采用event
来重构代码,总算得到了一个自己较为满意的(可扩展的)版本。
在编写Python 代码时,有时我们会遇到请求管理员权限的情况,比如修改hosts 文件、打开某些端口等等。我们可以在打包Python 成可执行文件时附上UAC 相关的信息。然而更一般的,我们可以在代码中判断当前进程是否以管理员权限运行,如果不是,则调用系统的runas
命令,通过管理员权限重新启动一个进程。
能够配置使用的,可以一对一地传输数据
0xxx xxx;xxxx xxxx,xxxx xxxx,xxxx xxxx
掩码 8位 1.0.0.0 - 126.0.0.010xx xxx,xxxx xxxx;xxxx xxxx,xxxx xxxx
掩码16位 128.0.0.0 - 191.255.0.0110x xxx,xxxx xxxx,xxxx xxxx;xxxx xxxx
掩码24位 192.0.0.0 - 223.255.255.01110 xxx,xxxx xxxx,xxxx xxxx,xxxx xxxx
多播组号1111 0xx,xxxx xxxx,xxxx xxxx,xxxx xxxx
备用