文章目录

  • 一、前言
  • 二、代码
  • 三、运行

一、前言


Python | threading01 - 创建两个同时运行的子线程
上一次使用了python的多线程库threading创建了两个同时运行的子线程。在树莓派上用threading创建两个子线程同时运行,两个线程各负责控制一个LED灯以不同的频率闪烁。

二、代码


# python3.9
import time
import threading
import RPi.GPIO as GPIOdef thread1():"""线程1控制黄色LED灯,以0.5秒的时间间隔闪烁"""GPIO.setup(20,GPIO.OUT)   # 设置GPIO20为输出GPIO.output(20,GPIO.LOW)  # GPIO20输出低电平while True:# 打印信息,并打印性能计数器的值print("I am thread1,time is %f" % time.perf_counter())GPIO.output(20,GPIO.HIGH)  # GPIO20输出高电平time.sleep(0.5)   # 休眠0.5秒GPIO.output(20,GPIO.LOW)   # GPIO20输出低电平time.sleep(0.5)   # 休眠0.5秒def thread2():"""线程2控制红色LED灯,以0.5秒的时间间隔闪烁"""GPIO.setup(21,GPIO.OUT)  # 设置GPIO21为输出GPIO.output(21,GPIO.LOW) # GPIO21输出低电平  while True:# 打印信息,并打印性能计数器的值print("I am thread2,time is %f" % time.perf_counter())GPIO.output(21,GPIO.HIGH)  # GPIO21输出高电平time.sleep(0.3)   # 休眠0.3秒GPIO.output(21,GPIO.LOW)   # GPIO21输出低电平time.sleep(0.3)   # 休眠0.3秒def main():"""主线程"""GPIO.setwarnings(False)     # 关闭警告GPIO.setmode(GPIO.BCM)      # BCM modet1 = threading.Thread(target=thread1,name="fun_thread1",daemon=True) # 创建thread1线程t2 = threading.Thread(target=thread2,name="fun_thread2",daemon=True) # 创建thread2线程t1.start()  # 启动thread1线程t2.start()  # 启动thread2线程print("t1的线程名字是 %s" % t1.getName()) # 打印t1线程的线程名字print("t2的线程名字是 %s" % t2.getName()) # 打印t2线程的线程名字t1.join()   # 当前需要等待线程t1执行完毕后才能运行下一步t2.join()   # 当前需要等待线程t2执行完毕后才能运行下一步GPIO.cleanup() # 清除GPIO的设置print("主线程执行完毕!")if __name__ == "__main__":main()

三、运行


在树莓派上运行代码:

树莓派 | threading01 - 创建两个子线程同时运行,两个线程各负责控制一个LED灯以不同的频率闪烁相关推荐

  1. 【归档】证明V的两个子空间的并是V的子空间当且仅当其中一个子空间包含另一个子空间

    Note: 旧的wordpress博客弃用,于是将以前的笔记搬运回来. Question: Prove that the union of two subspaces of V V V is a su ...

  2. 实例2:树莓派GPIO控制外部LED灯闪烁

    实例2:树莓派GPIO控制外部LED灯闪烁 实验目的 通过背景知识学习,了解四足机器人mini pupper搭载的微型控制计算机:树莓派. 通过树莓派GPIO操作的学习,熟悉GPIO的读写控制. 通过 ...

  3. 树莓派GPIO入门(一):点亮一个LED灯

    一.实验要求 点亮一个LED灯是电子开发最常见的入门实验.本次实验分为三个小实验: (1)点亮单个LED灯,并让其亮暗闪烁 (2)通过脉宽调制(PWM)点亮单个LED灯,并让其亮暗闪烁 (3)让LED ...

  4. 观察多个线程同时运行|| 查看进程线程的方法——未完待续

    观察多个线程同时运行:主要是理解,交替执行,谁先谁后,不由我们控制 查看进程线程的方法

  5. 【树莓派学习笔记】三、点亮一个LED灯(C语言 - WiringPi、Python - RPi.GPIO/GPIO Zero、bash脚本)

    目录 C语言 WiringPi Python RPi.GPIO GPIO Zero bash脚本 平台:树莓派3B 版本: 2021-05-07-raspios-buster-armhf 若GPIO输 ...

  6. [树莓派 PICO(基于MicroPython)]基础教程02-按键测试、按键控制外设LED开关

    最近入手了pico学习. 目录 〇.总的参考 一.函数说明 二.硬件准备 三.程序-按键测试.按键控制外设LED开关 1.按键测试 2.按键控制外设LED开关 四.可能出现的问题 〇.总的参考 ①视频 ...

  7. 树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  8. 第5章 用树莓派点亮LED灯

    用树莓派点亮一个LED灯是非常简单的事情,但却非常重要,是利用GPIO控制外部硬件设备的基础,机器人的大部分功能都可以通过操纵GPIO来实现的.换句话说,能控制一个LED灯,就能让机器人动起来.本章将 ...

  9. Python | threading01 - 创建两个同时运行的子线程

    文章目录 一.前言 二.创建两个同时运行的线程 2.1.代码 2.2.运行 三.threading库的函数 3.1.threading.Thread() 3.2.threading.join() 3. ...

最新文章

  1. 拍拍信微服务网关实践分享
  2. MongoDB 基础用法及学习笔记
  3. 仿windows关机对话框的提示框效果
  4. VMware NAT模式
  5. JAVA集合(笔记)
  6. 选址问题java_学习使用分治算法来解决邮局选址问题(Java实现)
  7. ubuntu 修改旋转屏幕显示方向 恢复正常模式
  8. 基于TableStore的物联网元数据管理
  9. 刚刚!6月榜单:JS跌惨,Python又霸榜,C++再无翻身可能!
  10. Map Reduce和流处理
  11. Java动态绑定与多态
  12. 模拟幅度调制系统抗干扰性能仿真分析[模板]
  13. sql 怎么获取系统时间
  14. java贪吃蛇_Java贪吃蛇游戏完善版
  15. java 多线程数组越界_越界java数组
  16. 您应该学习SwiftUI,UIKit还是同时学习两者?
  17. 【neon加速拆分/合并交叉数据】使用neon intrinsics加速合并/拆分uv的内存分布(交叉存储/分别存储)
  18. Go的Negroni库
  19. Linux设置防火墙
  20. 实例化对象是什么意思,什么是实例化,什么是对象。多态性

热门文章

  1. 使用Laravel Eloquent ORM 时如何查询表中指定的字段
  2. R语言是如何增强数据科学
  3. iOS开源库PKRevealController的使用
  4. Ubuntu下libvirt kvm配置
  5. silverlight 上下标
  6. 用perl语言求1到100之间的偶数,奇数及素数
  7. Gentoo Linux: /var/db/pkg 这个文件夹很重要![转]推荐阅读
  8. java压缩zip文件中文乱码问题
  9. 只靠可视化大屏,做不了数字化,数据总监总结3点,你做到了几个
  10. 数据库查询经常卡死?面对亿级大数据量,我是这么展示分析的