异步和线程

时间:2019-09-19 22:30:32

标签: python python-3.x multithreading multiprocessing python-asyncio

我使用asyncio订阅了一个套接字,该套接字随机地吐出数据(关于db变量更新),显然我只在运行事件循环时才收到这些更新。我想创建一个线程,该线程将定期(例如每3-5秒一次)轮询事件循环以获取更新,即使我没有对事件循环进行特定操作。

您是否建议使用threading / mp,还是为asyncio内置到我不知道的lib中的后台轮询循环提供更好的选择?

1 个答案:

答案 0 :(得分:0)

我可能会误解您的问题,但是无论如何,这是我的答案:

eventloop应该一直运行。在您的class Coins { public double[] coins = {50, 20, 10, 5, 2, 1, 0.50, 0.20, 0.10, 0.05, 0.02, 0.01}; public String[] coinsName = {"Fifty Pounds", "Twenty Pounds", "Ten Pounds", "Five Pounds", "Two Pounds", "One Pound", "Fifty Pence", "Twenty Pence", "Ten Pence", "Five Pence", "Two Pence", "One Pence"}; } 方法中,通常可以通过调用main()来获取eventloop实例。接下来,您将添加所需的所有内容。最后,您可以通过调用loop = asyncio.get_event_loop()

让它永远运行

关于使用Python进行异步编程的大量好文档。例如,这是一本不错的书: https://realpython.com/async-io-python/

您通常不需要在异步服务中使用多线程。