首页 > 编程语言 >Python双线程互相控制示例

Python双线程互相控制示例

时间:2024-11-09 08:50:05浏览次数:1  
标签:__ 示例 Python keyboard running time print 双线 def

Python双线程互相控制示例

  Code

import time
import pynput
import threading


# 用于控制循环和监听的全局变量
running = True


def on_press(key):
    global running
    try:
        if key == pynput.keyboard.Key.esc:
            running = False
    except AttributeError:
        pass


def on_release(key):
    # 停止监听
    if key == pynput.keyboard.Key.esc:
        return False


def print_loop():
    global running
    for i in range(1000):
        if not running:
            break
        print(i)
        time.sleep(0.000001)
    print("Loop finished or stopped by ESC.")
    # 循环结束后,设置running为False以停止键盘监听
    running = False


def listen_keyboard():
    global running
    with pynput.keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
        while running:
            listener.join()


def main():
    # 创建线程
    thread1 = threading.Thread(target=listen_keyboard)
    thread2 = threading.Thread(target=print_loop)

    # 启动线程
    thread1.start()
    thread2.start()

    # 等待线程结束
    thread1.join()
    thread2.join()


if __name__ == '__main__':
    start_time = time.time()
    main()
    end_time = time.time()
    dur = end_time - start_time
    print('脚本运行时间是:{:.2f}秒'.format(dur))

 

标签:__,示例,Python,keyboard,running,time,print,双线,def
From: https://www.cnblogs.com/laixufei/p/18536263

相关文章

  • D61【python 接口自动化学习】- python基础之数据库
    day61数据库定义学习日期:20241107学习目标:MySQL数据库--130:MySQL入门使用学习笔记:在命令提示符内先试用MySQL使用图形化工具操作MySQLDBeaver安装DBeaver连接MySQL总结MySQL安装成功后,可以使用命令提示符查看数据库安装使用图形化工具DBeaver操作MySQL......
  • Python面向对象1详解案例
    1.面向对象(先前pygame的小游戏后续1中有介绍)类名:大驼峰命名方式(每个单词的首写字母都有要大写)属性:就是变量行为:函数class类名:   类代码(属性,行为)运行代码类代码直接会执行对象:类产生对象(类()来实现)#对象使用类里面的方法对象.方法名()#对象使......
  • python 模拟登录问题
    `#模拟古诗文网的登录importrequestsfromdatetimeimportdatetimefromlxmlimportetreeimportbase64importtimelogin_url='https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'requestLoginUrl=r"https://so.gus......
  • python+flask计算机毕业设计高校校园线上跳蚤市场的系统设计(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容高校校园线上跳蚤市场的系统设计-内容说明一、选题背景随着互联网技术的发展,线上交易模式日益普及。关于跳蚤市场的研究,现有研究主要以线下跳蚤......
  • 20241107全国计算机二级Python优秀过级(大头博士计算二级)
    2024年11月7日今天全国计算机二级可以查分了,并下载证书了全国计算机等级考试(NCRE)成绩查询-中国教育考试网查看证书下载证书拿了一张200g的白色卡纸正反打印正反打印,机器有点走墨,晕开了,算了,反正有电子证,打印一张是留着备用的这张证书不能抵扣个人所得税,所以......
  • # python # 可视化窗口 # 可应用与爬虫 # tkinter
    具有功能:创建窗口,监听窗口(可自定义打印图片-选项-按键)所需工具:pycham所需库:tkinter代码讲解:1.导入库-创建窗口-设置窗口大小-设置标题importtkinterastk#创建一个窗口root=tk.Tk()#设置窗口大小root.geometry("800x400+400+200")#注意这里使用的是英文字......
  • 学习日志007--python函数 学完再练习练
    一、函数的概念1.定义函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。2.作用函数能提高应用的模块性,和代码的重复利用率3.定义函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用......
  • python篇:0基础带你入门python之元组集合字典
    一、元组Python中的元组(`tuple`)是一种有序、不可变的集合数据类型。与列表(`list`)类似,元组用于存储多个元素,但一旦创建,它的内容不能修改。元组使用圆括号`()`来定义。1.元组的定义元组可以通过圆括号`()`来定义,也可以省略括号,直接通过逗号分隔元素。示例:#使用圆括......
  • python篇:0基础带你入门python之函数篇
    所谓函数就是将一批代码进行打包封装,便于之后使用比如defmy_fun():print("我爱你")my_fun()这样在任何地方使用my_fun()即可马上输出“我爱你”,一、初入函数 不仅如此,函数分为有参函数和无参函数,有返回函数和无返回函数,总共四个有参有返回函数有参无返回函数无......
  • python+flask计算机毕业设计共享充电柜系统WEB管理平台的设计与实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景随着电动交通工具的普及,充电需求日益增长,共享充电柜作为一种新兴的充电解决方案应运而生。关于共享充电设施的研究,现有研究主要以共享......