Python 如何穿过一条二流

Python 如何穿过一条二流,python,multithreading,python-3.x,twitter,tweepy,Python,Multithreading,Python 3.x,Twitter,Tweepy,我正在制作一个程序,使用Tweepy拉取实时推文,并通过一个函数运行它。我使用Tweepy流来完成获取tweets的任务。然而,我希望在该功能运行时,Tweepy仍然可以拉这些实时推文。我相信我需要在Tweepy事件侦听器中执行线程,但我不完全确定如何执行此操作 def doesSomething(s): #function here class listener(tweepy.StreamListener): def on_status(self, status):

我正在制作一个程序,使用Tweepy拉取实时推文,并通过一个函数运行它。我使用Tweepy流来完成获取tweets的任务。然而,我希望在该功能运行时,Tweepy仍然可以拉这些实时推文。我相信我需要在Tweepy事件侦听器中执行线程,但我不完全确定如何执行此操作

def doesSomething(s):
    #function here

class listener(tweepy.StreamListener):
    def on_status(self, status):
        doesSomething(status)

stream_listener = listener()
tweepy.Stream(auth = api.auth, listener=stream_listener)
stream.filter(track=["Example"])

这是一个你可以很容易适应的例子。。。 代码将创建一个线程,在后台更新计数器,而循环将连续打印计数器的值。“stop”变量负责在主进程终止或退出时退出线程

import threading
import time
from sys import stdout

# Only data wihtin a class are actually shared by the threads
class Counter(object):
    counter = 0
    stop = False

# Function that will be executed in parallel with the rest of the code
def function_1():
    for i in range(10):
        if c.stop: return # With more will exit faster
        time.sleep(2)
        c.counter += 1
        if c.stop: return

# Create a class instance
c = Counter()

# Thread function_1
d = threading.Thread(target=function_1)
d.start()

# Exit the thread properly before exiting...
try:
    for j in range(100):
        stdout.write('\r{:}'.format(c.counter))
        stdout.flush()
        time.sleep(1)
except:
    c.stop = True

您可以使用async=True参数在另一个线程中运行流:

myStream.filter(track=['python'], async=True)

有关更多信息,请参阅。

在较新版本中,使用
is\u async=True