继续循环并继续前进(Python)

时间:2011-09-19 22:24:18

标签: python loops while-loop python-multithreading

我的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循环的继续,我想转向另一个解析数据的方法。

如何让循环继续运行并转到下一个命令?需要线程吗?我是线程概念的新手,所以请耐心等待我:)

由于

2 个答案:

答案 0 :(得分:0)

是的,因为你基本上要同时做两件事,你必须创建一个新线程(使用threading)或者更简单地创建一个新进程(使用{{1或者只是multiprocessing

最简单的方法是将此部分放在一个函数中,并使用os.forkmultiprocessing在另一个进程中启动该函数。通常情况下,您可以使用多个线程而不是多个线程来减少怪异,仅限FYI。

答案 1 :(得分:-1)

received = ""
while True:
     data = socket.recv(1024)
     if not data:
         break # ends the while loop
     received+=data

do_stuff(received)