Python execute_async()和execute_concurrent()之间的差异

Python execute_async()和execute_concurrent()之间的差异,python,cassandra,Python,Cassandra,我想知道python中Cassandra查询的execute\u async()和execute\u concurrent()之间的区别。execute()将以阻塞调用的形式运行一条语句,直到语句执行完毕才会返回 execute\u async()将以异步调用的形式提交一条语句,该语句将立即返回response\u future对象,您可以稍后使用该对象检索结果。通过调用execute\u async,程序可以在不等待语句完成的情况下继续运行。由于它是非阻塞的,您可以通过反复调用它来提交许多语句

我想知道python中Cassandra查询的
execute\u async()
execute\u concurrent()
之间的区别。

execute()
将以阻塞调用的形式运行一条语句,直到语句执行完毕才会返回

execute\u async()
将以异步调用的形式提交一条语句,该语句将立即返回
response\u future
对象,您可以稍后使用该对象检索结果。通过调用
execute\u async
,程序可以在不等待语句完成的情况下继续运行。由于它是非阻塞的,您可以通过反复调用它来提交许多语句,并让它们同时处于“飞行”状态


execute\u concurrent()
是一个阻塞调用,它将并行运行语句列表并返回结果列表。与线程池一样,您可以指定一次允许它运行的语句数。如果希望在任何语句导致错误时立即返回,则可以设置一个标志。

OK。但是你能告诉我execute\u concurrent()是否为每个语句启动一个新线程吗?快速浏览源代码,execute\u concurrent()似乎是使用execute\u async实现的,因此它可能只使用一个线程。它将为每个异步调用创建一个future对象,然后在每个future上设置一个回调,以便在每个语句完成时从中收集结果。