首页 > 编程语言 >并发编程之定时器

并发编程之定时器

时间:2024-03-03 11:33:19浏览次数:30  
标签:__ code self 编程 random 并发 定时器 cache make

定时器

定时器,指定n秒后执行某操作

简易版:

from threading import Timer


def task(name):
    print('hello %s' % name)


t = Timer(5, task, args=('xiao',))
t.start()

# hello xiao

应用版:

## 验证码定时器
from threading import Timer
import random


class Code:
    def __init__(self):
        self.make_cache()

    def make_cache(self, interval=5):
        self.cache = self.make_code()
        print(self.cache)
        self.t = Timer(interval, self.make_cache)
        self.t.start()

    def make_code(self, n=4):
        code = ''
        for i in range(n):
            code_list = [random.randint(0, 9),
                         chr(random.randint(65, 90)),
                         chr(random.randint(97, 122))
                         ]
            code += str(random.choice(code_list))
        return code

    def check(self):
        while True:
            code_input = input('请输入你的验证码:').strip()
            if code_input.upper() == self.cache.upper():
                print('验证成功')
                self.t.cancel()
                break


if __name__ == '__main__':
    obj = Code()
    obj.check()

标签:__,code,self,编程,random,并发,定时器,cache,make
From: https://www.cnblogs.com/xiao01/p/18049744

相关文章

  • 并发编程之条件Condition
    条件Condition(了解)使得线程等待,只有满足某条件时,才释放n个线程importthreadingdefrun(n):con.acquire()con.wait()print("runthethread:%s"%n)con.release()if__name__=='__main__':con=threading.Condition()foriinra......
  • 「java.util.concurrent并发包」之 Unsafe
    一unsafe介绍Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用。但由于Unsafe类使Java语言拥有了类似C......
  • 对于需要实时处理的代码语句 就用定时器中断模式,实现多线程模式,建议不要用查询模式。
    对于需要实时处理的代码语句就用定时器中断模式,实现多线程模式,建议不要用查询模式。 示例代码1:查看代码#include"delay.h"#include"sysInt.h"#include"intrins.h"charSMGDuan[]={0x5B,0x3F,0x5B,0x66, 0x40,0x40, 0x3F,0x3F}; //2024--MMcharsegDuan[]={0x3F,0......
  • c++多线程编程
    c++线程库:<thread>创建线程:需要可调用的函数或者函数对象作为线程入口点例:std::threadthreadname(function_name,args...)在C++中,当使用std::thread创建线程并传递类的成员函数时,需要使用&来获取成员函数的地址,同时还需要传递对象的指针(或引用)作为第一个参数。......
  • Go语言的100个错误使用场景(55-60)|并发基础
    目录前言8.并发基础8.1混淆并发与并行的概念(#55)8.2认为并发总是更快(#56)8.3分不清何时使用互斥锁或channel(#57)8.4不理解竞态问题(#58)8.5不了解工作负载类型对并发性能的影响(#59)8.6不懂得使用Gocontexts(#60)小结前言大家好,这里是白泽。《Go语言的100个错误以及如何避免》......
  • 【STL和泛型编程】4. hashtable、unordered_set、unordered_map
    1.hashtable前置知识:【数据结构】3.跳表和散列 基本原理:将Key计算成一个数值,然后取余数得到它在表头中的位置table(篮子)里每个指针都指向一个链表(桶)来存储余数相同的值如果桶内的元素个数比篮子个数还多,则将篮子的大小扩充篮子是vector,数量是质数,初始为53,53扩充后为97......
  • 2024-03-01-Linux高级网络编程(6-原始套接字)
    6.原始套接字6.1TCPUDP回顾数据报式套接字(SOCK_DGRAM)无连接的socket,针对无连接的UDP服务可通过邮件模型来进行对比流式套接字(SOCK_STREAM)面向连接的socket,针对面向连接的TCP服务可通过电话模型来进行对比这两类套接字似乎涵盖了TCP/IP应用的全部TCP......
  • C#中的GDI+图像编程详解
    本文详细讲解了C#中的GDI+图像编程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值。一、GraphicsGDI+是GDI(WindowsGraphicsDeviceInterface)的后继者,它是.NETFramework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于......
  • 基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
    1.算法运行效果图预览    2.算法运行软件版本matlab2022a  3.算法理论概述       MNIST是一个手写数字的大型数据库,包含60,000个训练样本和10,000个测试样本。每个样本都是28x28像素的灰度图像,代表0到9之间的一个数字。 3.1卷积神经网络(CNN)   ......
  • 主流编程语言的“介绍”与“选择”
    前言:编程语言本身没有优劣之分,不同的语言适合不同的场景,文中说的建议,多是站在小白要就业的立场给出的建议。正文我们看这张导图,这张图右侧是前端类的语言,左侧是服务端的语言: 我们先说右侧。第一个就是JavaScript,简称JS。我强调下他和Java是没有关系的,只是名字类似。......