亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

只有第一個線程正在使用 python 線程運行

只有第一個線程正在使用 python 線程運行

慕妹3146593 2021-06-07 11:17:44
大家好,我不知道為什么唯一運行的塊是我的第一個函數。我試圖將我的 coin_counter 最后一個值傳遞給第二個函數,但我的第一個函數在發布后沒有傳遞該值。而且它也不會打印到控制臺import RPi.GPIO as GPIOimport timeimport threadingGPIO.setmode(GPIO.BCM)GPIO.setup(27,GPIO.IN, pull_up_down=GPIO.PUD_DOWN)lock = threading.Lock()counter = 1pulse = 0def coin_counter():    global counter    lock.acquire()    try:        while True:            time.sleep(.1)            GPIO.wait_for_edge(27, GPIO.RISING)            #print("Pulse comming ! (%s)") %counter            counter += 1        return counter    finally:        lock.release()print(coin_counter())def get_pulse_count():    while True:        print('Hello World!')try:    coincounter = threading.Thread(target=coin_counter)    getpulse = threading.Thread(target=get_pulse_count)    coincounter.start()    getpulse.start()except KeyboardInterrupt:    coincounter.stop()    getpulse.stop()    GPIO.cleanup()
查看完整描述

2 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

我覺得問題符合print(coin_counter())。它應該被刪除,因為我們在主線程(coin_counter()調用)中有無限循環。在此行之后不會執行任何代碼。如果我們刪除這一行并添加sleep進去,get_pulse_count()那么它就起作用了。此外return counter,如果你通過全局變量傳遞值不要求counter。


查看完整回答
反對 回復 2021-06-09
  • 2 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號