cliffgao的个人博客分享 http://blog.sciencenet.cn/u/cliffgao 兴趣:生物信息学、统计、概率

博文

待解决的问题:停止运行时间太久的程序。

已有 4090 次阅读 2011-3-27 21:44 |个人分类:待解决问题|系统分类:生活其它| 时间


待解决的问题: 当一个程序运行时间很久时,自动停止该程序。

(1)评论:如果遇到这种情况,试着从另一个方面想想问题:是不是我们的数据有问题,如果数据没有问题,再试图解决本文中要处理的问题。

(2)问题状态: 初步解决。
(3)拟解决方案:1) Thread, 2) Singal 有待实际程序中进一步验证。
(4)参考:http://stackoverflow.com/questions/2831775/running-a-python-script-for-a-user-specified-amount-of-time
(5)具体方法
1.
#!/usr/bin/env python
from
time import sleep
from threading import Thread
import time

def my_task():
    print("start time: %s"  %time.time())
    for i in range(10):
        print("%d / 10 is ok" %(i+1))#time.time()
        sleep(2)
    print("end time : %s"  %time.time())

t=Thread(target=my_task)  #open an thread
t.daemon=True
t.start()

snooziness=int(raw_input("enter the amount of seconds you wants to run this:"))
sleep(snooziness)   #if  my_task is longer than snooziness, my_task will break out.
print ("after sleep, end time %s" %time.time())
###########
2.
#!/usr/bin/env python
import signal
import time

def got_alarm(sigum, frame):
    print "Alarm"
start=time.time()
print("start: %s" %start)
signal.signal(signal.SIGALRM, got_alarm)

signal.alarm(2)
end=time.time()
print("end: %s  end-start: %f" %(end,end-start))

start=time.time()
print ("sleeping....")
time.sleep(4)
end=time.time()
print(" after sleep end-start: %f " %(end-start))

print "done"
##########
#start: 1301236049.46
#end: 1301236049.46  end-start: 0.000055
#sleeping....
#Alarm
# after sleep end-start: 2.000029
#done
#
###




https://wap.sciencenet.cn/blog-468005-426963.html

上一篇:2010-09-10教师节快乐~
下一篇:psipred installation
收藏 IP: 202.113.29.*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-16 19:31

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部