from threading import Timer

# -*- coding: cp936 -*-

from threading import Timer

class MyTimer:

def __init__(self):

self._timer= None

self._tm = None

self._fn = None

def _do_func(self):

if self._fn:

self._fn()

self._do_start()

def _do_start(self):

self._timer = Timer(self._tm, self._do_func)

self._timer.start()

def start(self, tm, fn):

self._fn = fn

self._tm = tm

self._do_start()

def stop(self):

try:

self._timer.cancel()

except:

pass

def hello():

from datetime import datetime

print("hello world!", datetime.now())

if __name__ == ‘__main__‘:

mt = MyTimer()

mt.start(2, hello)

for i in range(10):

import time

time.sleep(1)

mt.stop()

#该代码片段来自于: http://www.sharejs.com/codes/python/6703

时间: 2024-10-19 17:55:33

from threading import Timer的相关文章

【python标准库学习】thread,threading(一)多线程的介绍和使用

在单个程序中我们经常用多线程来处理不同的工作,尤其是有的工作需要等,那么我们会新建一个线程去等然后执行某些操作,当做完事后线程退出被回收.当一个程序运行时,就会有一个进程被系统所创建,同时也会有一个线程运行,这个线程就是主线程main,在主线程中所创建的新的线程都是子线程,子线程通常都是做一些辅助的事.python中提供了thread和threading两个模块来支持多线程. python中使用线程有两种方式,第一种是用thread模块的start_new_thread函数,另一种是用threa

Python timer定时器

from threading import Timer import time timer_interval=10 def delayrun(): print 'running...' t=Timer(timer_interval,delayrun) t.start() while True: time.sleep(1) print 'main running......'

Python使用Timer实现验证码功能

from threading import Timer import random class Code: def __init__(self): self.make_cache() def make_cache(self,interval =15): self.cache = self.make_code() print(self.cache) self.t = Timer(interval,self.make_cache) self.t.start() def make_code(self,

线程模块threading

线程 -Threading模块 -使用和进程基本相似 多线程中是可以input的 在使用的过程中从用户层面上并没有感觉到和进程的差别,但是有本质差别 执行代码的最小单元 每一个进程至少有一个线程,这个线程是主线程 一个进程内的所有线程之间的数据是共享的 #启动多线程 from threading import Thread import time def func(i): time.sleep(1) print(i) for i in range(10): t = Thread(target=f

Python线程之threading

线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除.进程是资源分配的最小单位,线程是CPU调度的最小单位,每一个进程中至少有一个线程,线程可与属于同一进程的其它线程共享进程所拥有的全部资源,但是其本身基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器.一组寄存器和栈). Threading模块提供线程相关的操作,Threading模块包含Thread,Lock,RLock,Event,Queue等组件

python3 定时器Timer

# -*- coding: utf-8 -*- from threading import Timer def talk(name): print("%s is talking." % name) if __name__ == '__main__': '''Timer(等待多少秒, 执行的函数, args给函数传参数)''' timer = Timer(3, talk, args=("lily",)) timer.start() # lily is talking.

Python之路(第四十五篇)线程Event事件、 条件Condition、定时器Timer、线程queue

一.事件Event Event(事件):事件处理的机制:全局定义了一个内置标志Flag,如果Flag值为 False,那么当程序执行 event.wait方法时就会阻塞,如果Flag值为True,那么event.wait 方法时便不再阻塞. Event其实就是一个简化版的 Condition.Event没有锁,无法使线程进入同步阻塞状态. Event() set(): 将标志设为True,并通知所有处于等待阻塞状态的线程恢复运行状态. clear(): 将标志设为False. wait(time

day9---多线程,线程锁,队列

进程.线程http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 使用threading模块实现多线程编程[综述]Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势. 在Python中我们主要是通过thread和 threading这两个模块来实现的,其中Python的threa

Python标准库笔记(5) — sched模块

事件调度 sched模块内容很简单,只定义了一个类.它用来最为一个通用的事件调度模块. class sched.scheduler(timefunc, delayfunc)这个类定义了调度事件的通用接口,它需要外部传入两个参数,timefunc是一个没有参数的返回时间类型数字的函数(常用使用的如time模块里面的time),delayfunc应该是一个需要一个参数来调用.与timefunc的输出兼容.并且作用为延迟多个时间单位的函数(常用的如time模块的sleep). 下面是一个列子: imp