also habe ich diesen Code, wo ich diese beiden Threads hintereinander konstant ausführen müssen.Wie kann ich diese beiden Threads nacheinander hintereinander python laufen lassen?
Also, sobald Thread 1 beendet, Thread 2 geht und einmal Thread 2 endet, dann Thread 1 geht dann Thread 2 usw. ... wie ständig, als ob es eine Endlosschleife ist.
import httplib, urllib
import time, sys
import serial
from threading import Thread
#from multiprocessing import Process
key = 'MY API KEY' #API Key required for ThingSpeak.
rfWaterLevelVal = 0 #Global variable that holds the final water level value.
ser = serial.Serial('/dev/ttyUSB0',9600)
#Gathers the rf data received and separated it to obtain the water level data.
def rfWaterLevel():
global rfWaterLevelVal
rfDataArray = ser.readline().strip().split()
print 'incoming: %s' %rfDataArray
if len(rfDataArray) == 5:
rfWaterLevelVal = float(rfDataArray[4])
print 'RFWater Level1: %.3f cm' % (rfWaterLevelVal)
#Created purely to making the multithreading easier.
def rfWaterLevelFinal():
while True:
try:
rfWaterLevel()
except KeyboardInterrupt:
print "caught keyboard interrupt"
sys.exit()
#Sends the sensor data over to ThingSpeak.
def sendData():
global rfWaterLevelVal
params = urllib.urlencode({'field1':rfWaterLevelVal, 'key':key})
headers = {"Content-type" : "application/x-www-form-urlencoded","Accept": "text/plain"}
conn = httplib.HTTPConnection("api.thingspeak.com:80", timeout = 5)
conn.request("POST", "/update", params, headers)
response = conn.getresponse()
print response.status, response.reason
data = response.read()
conn.close()
#Created purely to make multithreading easier.
def sendDataFinal():
while True:
try:
sendDataFinal()
except KeyboardInterrupt:
print "caught keyboard interrupt"
sys.exit()
#start thread 1 for rf water level data.
t1 = Thread(target = rfWaterLevelFinal())
t1.start()
#start thread 2 for sending the data.
t2 = Thread(target = sendDataFinal())
t2.start()
#wait for both threads to finish
t1.join()
t2.join()
So im Wesentlichen brauche ich diesen Thread 1 Start dann beenden, Faden 2 beginnt dann beenden, ständig ausgeführt werden (als ob es in einer Endlos-Schleife ist).
Ich habe einen Threadpool in Python dafür verwendet, aber ich habe keine Ahnung, wie man es anwendet.
Irgendwelche Ideen, was ich tun könnte, um die gewünschten Ergebnisse zu erzielen?
Prost Vielen Dank im Voraus!
Sie nicht Thread müssen nacheinander – YOU