继续一个循环,并继续前进(Python)的
问题描述:
我有一个“而”循环在我的Python应用程序(V2.7),它基本上与蓝牙GPS设备进行通信,并循环继续,只要有接收数据。从本质上说,while循环是这样的: -继续一个循环,并继续前进(Python)的
> data = ""
>
> if data == None:
> print "Connection Failed" else:
> print "Connection Established"
>
> while True:
> data = socket.recv(1024)
现在我想要做的就是让整个节目的生命持续运行这个while循环,直到蓝牙设备关闭这反过来将结束因为没有数据将被接收。尽管如此,随着这个while循环继续,我然后想要转移到另一个将解析数据的方法。
我怎么能离开的循环运行,并移动到下一个命令?是否需要线程?我是新来的线程的概念,所以请耐心等待我:)
感谢
答
是啊,因为你基本上会在同一时间做两件事情,你必须创建一个新的线程(使用threading
)或者更简单的新工艺(使用multiprocessing
或只是os.fork
)
最简单的事情就是把这个部分的功能,并使用multiprocessing
或threading
启动功能一个不同的过程。通常情况下,对于多个进程而言,您将不会有多余的怪异现象,只是FYI。
答
received = ""
while True:
data = socket.recv(1024)
if not data:
break # ends the while loop
received+=data
do_stuff(received)
根据从设备读取的延迟要求,您可以使用生成器作为[协程](http://antroy.blogspot.com/2007/04/python-coroutines.html )而不是线程/多处理。 – agf