首页
网站文档
SEO优化
爬虫分析
科技与狠活
各类源码
python
番剧推荐
关于
友人帐
赞助榜
更多
追番列表
留言板
统计
推荐
云烟主页导航
用户登录
用户名
密码
登录
关键词搜索
搜索
标签搜索
SEO教程
内网穿透
php
影视资源
个人简介
实用软件
api源码
唯一
chatgpt
网站收录
追番列表
60S
渗透
fusionAPP
HTTP
虚拟机
vpn
ddos
Termux
wget安装命令
热门文章
1
云烟个人简介
8,505 阅读
2
抵御ddos攻击-如何防止源IP泄漏
2,656 阅读
3
使用Kali对目标WiFi发起渗透
1,981 阅读
4
给Typecho博客添加追番列表
1,472 阅读
5
搭建FRP内网穿透,轻松实现外网访问群晖教程(一)
448 阅读
6
IP签名档api源码
268 阅读
7
雷电模拟器9(64)v9.0.35.0 去广告绿色纯净
242 阅读
8
社会工程学——入门篇
206 阅读
9
猴子分身 V3.4.2 无限多开 模拟位置
203 阅读
云烟
百度一下
🔎点击搜索,可帮助本站seo优化!
云烟
37秒前
在线
累计撰写
58
篇文章
累计收到
25
条评论
首页
栏目
网站文档
SEO优化
爬虫分析
科技与狠活
各类源码
python
番剧推荐
页面
关于
友人帐
赞助榜
追番列表
留言板
统计
推荐
云烟主页导航
用户登录
登录
“python” 共(2)篇
2023年11月21日
35
阅读
python
python脚本打包成exe 可直接运行
{card-list}{card-list-item}众所周知 py脚本不能在未安装python环境的电脑上运行{/card-list-item}{card-list-item}我们如果写了一个自动化脚本想在没安装python环境的电脑上运行 就可以将py脚本打包成exe{/card-list-item}{/card-list}安装Pyinstaller首先使用快捷键win+r 打开运行窗口 输入cmd回车 在cmd中使用pip命令pip install pyinstaller 来到指定文件夹 这里用我的脚本做示例执行命令Pyinstaller -F -i favicon.ico xywdl.py总结 Pyinstaller -F xywdl.py 打包exe Pyinstaller -F -w xywdl.py 不带控制台的打包 Pyinstaller -F -w -i favicon.ico xywdl.py 打包指定exe图标打包 -i favicon.ico就是指设置自己的图标图案注意此处的-w 意思是程序执行时不打开控制台窗口 如下图 如果你不想要上图的窗口就加上-w命令 如Pyinstaller -F -w -i favicon.ico xywdl.py 不带控制台窗口更多详细命令参考下图
2023年03月02日
167
阅读
python
python从异步到多线程“陷阱”
多线程【一般】来说是可以提升效率的,但有额外情况,同时,初学者在使用多线程时往往会忽视一些问题,于是有了本文本文知识点大致如下,由浅入深:[灯泡]同步与异步[灯泡]进程与线程[灯泡]阻塞与非阻塞[灯泡]线程安全[灯泡]守护程序(daemon)[灯泡]全局解释器锁(GIL)[灯泡]多线程何时【无意义】[彩虹]下文有序号的为理论知识,要是嫌烦也可以直接看代码,部分图片代码传不下了,评论区再发——————那么开始正文❶同步与异步这应该是最简单的概念了,一笔带过同步就是按顺序执行,即一段代码从上到下一行行执行,而异步则相反,它指的是多段代码同时执行❷进程与线程计算机的两大核心分别为运算器和存储器,它们决定了一个设备的【硬件瓶颈】,每个任务都是一个进程,例如你打开电脑后,同时运行多个软件,也就创建了多个进程,进程可以再细分为线程简单来说【一个程序至少有一个进程,一个进程至少有一个线程】这里顺便科普下cpu的知识,即便是【单核】cpu,也能实现【多线程】,因为cup在工作的时候,总是会不断切换进程和线程执行,只不过的这个切换的时间很短(可以达到【微秒】的程度),以至于察觉不出来可能前几微秒在执行浏览器的进程,后几微秒又跑到另一个程序去了,如此循环往复,直到关机这块知识不用操心,因为cpu何时切换进程线程是由【操作系统】决定的,我们了解即可❸阻塞与非阻塞这个也是简单的概念,阻塞就是当前任务会“卡住”,只有当前执行完毕程序才能继续运行下一个任务,非阻塞则相反好了,上面的都是理论知识,接下来可以看看代码了【图一】是在py中创建多线程,结果为【图二】❹线程安全在py中,每个线程操作的变量是【共享】的,也就是说,可能存在多个线程操作【同一个】变量,导致结果【覆盖】的问题,即线程不安全参考代码见【图三】【图四】比较常见解决方案是使用【线程锁】如【图五】【图六】❺守护程序daemon在py中,每个线程默认为【非】daemon,只有【所有】的非daemon结束了,程序才会结束当然,你也可以手动指定一个子线程位daemon,只需要在实例化时传入Thread(daemon=True)即可,这里省略了其他参数,避免混淆,实际编程时应该补全(参考图片代码)❻全局解释器锁GIL这个是解释器尝尝被人【诟病】的一种机制,在CPython这类解释器中,线程想要获取执行权限,必须要拿到GIL锁⭐这在很大程度上导致了py的多线程在cpu密集型任务中并【不能】同时使用多个cpu,导致py多线程效率大打折扣,甚至在某些情况下【相当】于单线程⭐这也是《python参考手册》和《python cookbook》的作者David Beazley说“py线程毫无用处”的原因但GIL并非一无是处,它简单粗暴的解决了线程安全问题,以至于部分语言解释器依旧选择使用(如Ruby)❼多线程何时无意义计算机任务可以简单分为【IO】密集型和【CPU】密集型根据❻给出的定义,在使用部分py解释器时,由于GIL机制,cpu密集型多线程效率低下,但好在IO密集型(例如爬虫)一般不受影响代码参考【图七】[彩虹]py的异步还有很多知识点是本文没涉及到的,我就权当抛砖引玉了,当然,后期如果有空还会补充,过年期间来兴致了说不定能多写几篇,就酱~[彩虹]pluie[彩虹]2023-01-28