树莓派 | threading01 - 创建两个子线程同时运行,两个线程各负责控制一个LED灯以不同的频率闪烁
生活随笔
收集整理的這篇文章主要介紹了
树莓派 | threading01 - 创建两个子线程同时运行,两个线程各负责控制一个LED灯以不同的频率闪烁
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、前言
- 二、代碼
- 三、運行
一、前言
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灯以不同的频率闪烁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转学伯克利计算机科学,转学前往伯克利大学
- 下一篇: 计算机网络课程设计之TELNET 终端设