amobbs.com 阿莫电子技术论坛

标题: 这里有玩PYTHON的大佬没?下面倒计时代码可行? [打印本页]

作者: dianzichina    时间: 2021-12-30 23:06
标题: 这里有玩PYTHON的大佬没?下面倒计时代码可行?
import time
while(1)
    n=3600
    这里执行联网测试,如通则继续执行,如无则提交联网登录表单以实现联入互联网再继续执行
    while(n>0)
        time.sleep(1)
        n--


是否CPU的时间片一直在这里轮转?影响电脑的其它工作?
   

作者: qwe2231695    时间: 2021-12-30 23:13
是,time.sleep(1) 就可降低cpu
作者: albert_w    时间: 2021-12-31 09:02
不会影响, sleep了, 这部分时间CPU干别的去了
作者: icoyool    时间: 2021-12-31 09:08
肯定没有问题啊, 但是你自己的进程肯定也会卡住的, 还不如找个别人做好的轮子
作者: wlmwwx    时间: 2021-12-31 21:08
本帖最后由 wlmwwx 于 2021-12-31 21:09 编辑

from threading import Timer
global n=3600
def time_call():
    if n>0:
        your code
        n=n-1
        t.start()

t = Timer(1, time_call)
t.start()

可以试试Timer

作者: dianzichina    时间: 2022-1-1 12:34
icoyool 发表于 2021-12-31 09:08
肯定没有问题啊, 但是你自己的进程肯定也会卡住的, 还不如找个别人做好的轮子 ...

别人做好的轮子是何意思,愿闻其详。。。谢谢。
作者: myxiaonia    时间: 2022-1-1 19:57
wlmwwx 发表于 2021-12-31 21:08
from threading import Timer
global n=3600
def time_call():

python多线程吗?那个全局锁是不是影响python多线程
作者: wlmwwx    时间: 2022-1-3 19:34
本帖最后由 wlmwwx 于 2022-1-3 19:40 编辑
myxiaonia 发表于 2022-1-1 19:57
python多线程吗?那个全局锁是不是影响python多线程


你多线程跑才会有这个问题,这个只相当于主程序起了个线程去计时,只有这一个线程去访问n。如果你需要多线程访问,可以把n当作一个参数传给回调函数,timer里是可以传参数的。
timer = threading.Timer(interval, function, args=None, kwargs=None)




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4