应该/如何使用线程来改进python脚本?

时间:2016-05-29 03:37:28

标签: python multithreading python-2.7 raspberry-pi i2c

我有一个相当简单的python脚本,不断轮询互联网资源以获取新数据。当找到新数据时,它会将其写入多个i2c 4字符字母数字显示中的一个。

问题是连续滚动显示信息的代码需要连续循环。只需调用函数写入显示然后返回轮询新数据就会简单得多。目前我必须将屏幕写入合并到主数据收集循环中。

以下是我写给显示器的方式:

message = 'DATA: 1234567'
pos = 0
while True: 
    display.clear()
    display.print_str(message[pos:pos+4])
    display.write_display()
    pos += 1
    if pos > len(message)-4:
        pos = 0
    time.sleep(0.5) `

我有什么选择?我应该使用线程还是有其他方法可以使用可中断的背景循环?

1 个答案:

答案 0 :(得分:1)

你可以使用像Twisted这样支持定时器的异步/事件驱动框架:http://www.saltycrane.com/blog/2008/10/running-functions-periodically-using-twisteds-loopingcall/ - 这可以将所有内容保存在一个线程中,并且它为您提供了用于执行HTTP GET的异步API,因此您不会挂起显示您的某个数据源响应缓慢。