Python 有没有办法让后台进程在仍然使用您的程序时检查网站?
我正在写一个用GUI控制的twitter机器人,我想自动检查一个网站新页面的更新,如果它不是重复的,那么就发推。我有一个系统,可以检查网站的变化,只有当它不是重复的时候才会发推特。但是我正在寻找一种方法来实现后台进程,在这个进程中,这些代码将在GUI仍在使用的情况下持续运行,例如,我正在使用程序回复推文,而在后台,机器人正在推文更新。我曾考虑过异步,但我似乎无法在这种情况下使用它,有什么想法吗?如果不进行大量计算,可以使用Python 有没有办法让后台进程在仍然使用您的程序时检查网站?,python,asynchronous,twitter,tweepy,Python,Asynchronous,Twitter,Tweepy,我正在写一个用GUI控制的twitter机器人,我想自动检查一个网站新页面的更新,如果它不是重复的,那么就发推。我有一个系统,可以检查网站的变化,只有当它不是重复的时候才会发推特。但是我正在寻找一种方法来实现后台进程,在这个进程中,这些代码将在GUI仍在使用的情况下持续运行,例如,我正在使用程序回复推文,而在后台,机器人正在推文更新。我曾考虑过异步,但我似乎无法在这种情况下使用它,有什么想法吗?如果不进行大量计算,可以使用线程启动一个新线程,或者使用子进程或多处理启动一个新进程。Asyncio将
线程
启动一个新线程,或者使用子进程
或多处理
启动一个新进程。Asyncio将面临与GUI线程争夺CPU时间的问题。线程已工作,谢谢!但是请记住,线程化
仅在后台任务几乎完全等待IO时才应使用。如果您正在做任何“工作”,GIL将完成它,因此这可能仍然滞后于GUI。您需要一个单独的进程来在后台执行工作。是否有其他方法可以替代为此设计的线程?我觉得在编程中同时运行两个进程是很常见的事情。多处理
模块包含线程池和进程池,还有一个与线程
相同的进程
构造函数,但在另一个进程中运行目标。Asyncio也用于在单个线程上运行多个IO等待,但它有一点学习曲线,并且需要自己的线程。我正在考虑使用它,但我使用的UI与它不太配合,因为我需要任务在后台持续运行,基本上与GUI分离,但仍然连接到程序,UI软件有一个典型的.go(),因此之后的任何内容都不会被查看。
def function_for_the_background_task():
while True:
do_something
update_thread = threading.Thread(target=function_for_the_background_task)
update_thread.start()
rest of program