Python 如何使此功能无阻塞?
我需要使函数s_设置不停止程序,我在异步函数中调用此函数,在Python 如何使此功能无阻塞?,python,python-3.x,asynchronous,Python,Python 3.x,Asynchronous,我需要使函数s_设置不停止程序,我在异步函数中调用此函数,在设置中,我在发送_设置中从服务器获取数据。我无法使方法(设置和发送设置)异步。但是我需要使这个函数非阻塞 def s_settings(id, _user_settings, all_settings): if 'category' in set_settings(str(id)): _user_settings[str(id)] = set_settings(str(id)) # Get from the S
设置
中,我在发送_设置
中从服务器获取数据。我无法使方法(设置和发送设置)异步。但是我需要使这个函数非阻塞
def s_settings(id, _user_settings, all_settings):
if 'category' in set_settings(str(id)):
_user_settings[str(id)] = set_settings(str(id)) # Get from the Server
print(user_settings)
_user_settings[str(id)]['category'].append(
all_settings[str(id)]['category'])
_user_settings[str(id)]['time_to_receive'].append(
all_settings[str(id)]['time_to_receive'])
_user_settings[str(id)]['language'].append(all_settings[str(id)]['language'])
send_settings(_user_settings[str(id)], str(id)) # Send to the server
好吧,那真是个糟糕透顶的家伙。您必须将此函数建模为协同程序。但是,由于您不能依赖事件循环来轮询对
send\u settings
的阻塞函数调用,因此您可以生成一个单独的线程,该函数将在其中执行。您的协同程序应该是非阻塞的,并且有一种轮询该线程并获得结果的方法。这可能是一个相当复杂的实现 好吧,那太糟糕了。您必须将此函数建模为协同程序。但是,由于您不能依赖事件循环来轮询对send\u settings
的阻塞函数调用,因此您可以生成一个单独的线程,该函数将在其中执行。您的协同程序应该是非阻塞的,并且有一种轮询该线程并获得结果的方法。这可能是一个相当复杂的实现 它是通过循环解决的。在执行器()中运行
它是通过循环解决的。在执行器()中运行