我的Python应用程序(v2.7)中有一个'while'循环,它基本上与蓝牙GPS设备通信,只要有数据被接收,循环就会继续。实质上,while循环看起来像这样: -
> data = ""
>
> if data == None:
> print "Connection Failed" else:
> print "Connection Established"
>
> while True:
> data = socket.recv(1024)
现在我要做的是在程序的整个生命周期中不断循环运行,直到蓝牙设备关闭,这反过来将结束循环,因为没有数据将被接收。尽管如此,随着while while循环的继续,我想转向另一个解析数据的方法。
如何让循环继续运行并转到下一个命令?需要线程吗?我是线程概念的新手,所以请耐心等待我:)
由于
答案 0 :(得分:0)
是的,因为你基本上要同时做两件事,你必须创建一个新线程(使用threading
)或者更简单地创建一个新进程(使用{{1或者只是multiprocessing
)
最简单的方法是将此部分放在一个函数中,并使用os.fork
或multiprocessing
在另一个进程中启动该函数。通常情况下,您可以使用多个线程而不是多个线程来减少怪异,仅限FYI。
答案 1 :(得分:-1)
received = ""
while True:
data = socket.recv(1024)
if not data:
break # ends the while loop
received+=data
do_stuff(received)