转自https://blog.csdn.net/zhuyijian135757/article/details/42269329,部分删减修改,学习分享所用,如有侵权,立刻删除。一、为什么死循环占用CPU高 一个进程如果是死循环,那么占有的CPU会很高,可以操作系统时间片运行的,到了一定时间不是会自动切换到别的进程吗?既然即便是死循环,到时间还是会切换到别的进程,为什么占用CPU会高呢...
记得以前的windows 任务定时是可以的正常使用的,今天试了下,发现不能正常使用了,任务计划总是挂起。
接下来记录下python 爬虫定时任务的几种解决方法。
今天是第一篇,后面会陆续更新。
首先最容易的是while
true
死
循环
挂起,上代码
import osimport timeimport sysfrom datetime import datetime, timedelta
def One_Plan():
# 设置启动周期
Second_update_time = 24 * 60 * 60
# 当前时间
now_Time = datetime.now()
一、为什么死
循环
占用
CPU
高
Q:一个进程如果是死
循环
,那么占有的
CPU
会很高,可是操作系统时间片运行到一定时间不是会自动切换到别的进程吗?既然如此,即便是死
循环
,到时间还是会切换到别的进程,为什么
占用
CPU
会高呢?
A:到时候的确会切换到别的进程。
可以这样理解:当切换到别的进程时,别的进程告诉系统自己没什么事情要做,不需要那么多的时间,这个时候系统就会切换到下一个进程,直到回到这个死
循环
...
最近接到TL分配的新任务,维护一个之前的新应用,在开发新需求的同时,不免也需要排查一些前人代码中埋下的坑。这不最近就出现了线上环境服务
CPU
较高的情况,让我们一起来围观下怎么对
CPU
过高
问题
进行分析以及解决的。
优化
过程
说明:由于是公司线上业务,这里的业务说明以及代码都进行了脱敏处理。
线上出现服务
CPU
占用
过高的
问题
,于是小枫使用top命令定位到
CPU
比较高的进程ID,再结合jstack命令,导出
CPU
高的进程的线程信息,定位到
问题
代码(如何进行线上
问题
排查不是本文的重点,这里一笔带过,后
本任务是完成虚拟减肥跑步机,在程序中输入体重、跑步速度、运动时长等,实时显示当前的跑步状态。
通过死
循环
进行需要减肥的重量和年龄的录入以及数据合法性校验
通过
while循环
,实时计算跑步剩余时间、当前的跑步距离和消耗的卡路里
while循环
while循环
基本语法
while 真值表达式:
else:
先执行真值表达式,判断
True
/False
如果为
True
则执行语句块1,然后跳转到第1步
如果为 False则执行else子句部分的语句块2,然后结束此while语句的执行。
如果没有else子句,则直接结束此while语句
else 子句部分可以省略(同if语句类似)
while循环
案例:求和计算器
需求描述:
现输入一个数n,求1到n之间所有数的和。
while循环
1
while循环
while循环
是Shell脚本中最简单的一种
循环
,当条件满足时,while重复地执行一组语句,当条件不满足时,就退出
while循环
。
Shell while
循环
的语法结构:
while condition
statements
这里condition表示判断条件,statements表示要执行的语句(可以只有一条,也可以有多条),do和done都是shell中的关键字。
while
循环
的执行流程:
(1)先对condition进行判断,如果该条件成立,就进入
循环
体,执行 while
循环
体中的语句,也就是do和done之间的语句,这样就完成了一次
循环
这个脚本中的 `increase_
cpu
_usage` 函数使用一个无限
循环
来
占用
CPU
。当脚本运行时,它将不断执行 `pass` 语句,没有其他的操作,导致
CPU
占用率
增加。
使用这个脚本的方法是将其保存为一个Python文件(例如 `increase_
cpu
.py`),然后在命令行中运行 `python increase_
cpu
.py`。脚本将开始执行并持续
占用
CPU
,直到手动停止脚本的运行(例如按下 `Ctrl + C`)。
请注意,这只是一个示例脚本,它的运行可能会导致系统变慢或其他进程受到影响。在实际使用时,请谨慎测试并确保这样的脚本不会对您的系统造成负面影响。