【Linux】线程实例 | 简单线程池
今天来写一个简单版本的线程池 1.啥是线程池 池塘,顾名思义,线程池就是一个有很多线程的容器。 我们只需要把任务交到这个线程的池子里面,其就能帮我们多线程执行任务,计算出结果。 与阻塞队列不同的是,线程池中内有一个队列用于任务管理,并帮我们封装了线程创建的工作。我们不再需要在主执行流里面创建线程(创建线程也是有时间消耗的),而是只关注于任务的创建,交给线程池来运行并产生结果就OK了 前面已经学习过阻塞队列了,此时再来写线程池,就没有那么困难了! 本次线程池的设计还会采用单例模式,同一个模板类型的任务,只需要一个线程池即可 1.1 简单复习单例模式 单例模式分为两种设计方式,一个是懒汉,一个是饿汉 懒汉:刚开始先不创建单例,等第一次使用的时候在创建;缺点是第一次获取单例需要等待,优点是程序启动快 饿汉:main函数执行前,就将单例创建起来;缺点是程序启动会比较慢,优点是启动之后获取单例会快 2.代码示例-处理task 2.1 成员变量 因为是线程池,需要在内部创建出线程来运行,所以我们需要一个num来标识需要创建的线程的数量 12345678910template...
【Python】生成本项目的requeirments.txt
有的时候,我们需要对自己写的项目生成一个requeirments.txt,方便其他使用者快速安装依赖项 参考https://www.cnblogs.com/shun7man/p/14080921.html 1.使用pip 如果你的项目本身就是在venv虚拟环境下跑的,那么可以直接用下面的语句生成一个依赖项文件 1pip freeze > requirements.txt 但如果你和我一样,没有使用虚拟环境,而是用全局的包的话,那就会出现上图的情况,生成的txt文件里面出现了太多本项目没有用到的包,那你让别人安装那么多没有用的包,岂不是坑人嘛! 所以可以用另外一个项目来解决这个问题 2.pipreqs 安装 项目地址 https://github.com/bndr/pipreqs 使用之前需要先安装一个包 1pip install pipreqs 123456789101112131415161718[muxue@bt-7274:~/kook/val-bot]$ pip3.10 install pipreqsDefaulting to user...
【Linux】tar命令打包 | 查看压缩文件 | 打包时忽略文件
tar命令打包 | 查看压缩文件 | 打包时忽略文件 等操作 1.起因 今天下午写阿狸bot的代码的时候,写错了aiofiles的保存操作 12345678# 正确写法async def write_file_aio(path:str, value): async with aiofiles.open(path, 'w', encoding='utf-8') as f: await f.write(json.dumps(value, indent=2, sort_keys=True,ensure_ascii=False)) # 错误写法# 前面是一样的await f.write(json.dump(value, indent=2,...
【Python】request.session的cookie如何导入aiohttp._cookie_jar
request.session的cookie导入aiohttp._cookie_jar的教程 1.起因 我的 kook-valorant-bot 使用了两个开源库,用于riot账户的登录并获取token 其中最主要用的是基于aiohttp的floxay/python-riot-auth,但这个仓库不支持2fa用户(开启了邮箱双重验证的用户)作者去年就说会写上,但是他比较忙没有排期; 于是我又去找了一个另外一个基于request的Prodzify/Riot-auth 支持2fa登录的,半月前已经给bot加上了这个缺失半年的功能。 可是 Prodzify/Riot-auth 没有写cookie登录方法,其每次登录都需要账户密码,2fa用户每次都需要提供邮箱验证码;对于一个bot来说,每次操作这么麻烦,很是难受! 随后,我去询问了写discord valorant bot的作者,得知如果2fa用户使用cookie登录,其是不需要提供邮箱验证码的! 那么问题就变成了,如何将...
【Python】request库InsecureRequestWarning的原因
今天在测试我自己写的api的时候,发现了之前出现的一个warning的真正原因 1.起因 先来看请求api的代码 1234567def ApiRq(account:str,passwd:str,background=''): url = "https://val.musnow.top/shop-url" params = { # 参数涉及到隐私,省略 } res = requests.get(url,params=params,verify=False) # 请求api return res.json() 运行,会出现这个警告 1/home/muxue/.local/lib/python3.10/site-packages/urllib3/connectionpool.py:1045: InsecureRequestWarning: Unverified HTTPS request is being made to host...
【Python】如何多文件编写KOOK机器人
如何多文件编写KOOK机器人
【Artalk】在wiki js站点上使用Artalk评论系统
本篇博客将教您如何在wiki js站点上使用artalk评论系统 [TOC] 1.介绍 1.1 wiki js https://github.com/requarks/wiki/ wiki js是一个开源的wiki站点,可以在线编辑页面。 页面以markdown编辑,同时支持富文本格式;因为其用git来管理提交历史,且在线编辑不需要用户知道如何操作git,所以非常适合多人协作撰写文档 如果你只是想要一个博客站点,没有多人协作需求,那么hexo会更合适您 共享文档(如金山文档)的提交历史大多数都不够详细,虽然有插入/删除历史,但是其没有标明上下文,你需要猜他是在文档的啥地方改了东西,非常不方便! git是一个版本管理软件,能清楚地知道xx用户修改了xx文档的xx行,并能看到修改之前和修改之后的提交对比。这部分就不赘述了 wiki js还有很棒的一点就是,你可以设置一个git仓库作为文档的备份,其会定时把整个站点的所有页面(包括图片)都上传到这个git仓库里面。即便站点因为某些原因出问题了,我们还有git仓库的备份😁 wiki...
【Python】如何给你的kook机器人添加上翻译功能
如何给你的kook机器人添加上翻译功能
【图床】博客表情包
这里是博客中可以用到的表情包列表,一并上传,避免多次上传占用阿里云空间; 大家觉得不错的可以保存下来😁但是不要恶意使用! 表情包