我对异步编程有基本的了解,但我无法概念化使用 aiosqlite 时如何在单线程环境中优化 I/O 操作。具体来说,我正在努力理解异步查询和插入表如何提高性能。
在使用sqlite3的传统同步编程中,我可以理解I/O优化的好处,但我不确定aiosqlite是如何异步实现这种效率的。当查询涉及表搜索和异步内容插入时,有人可以提供有关 aiosqlite 如何设法优化 I/O 操作的见解吗?
此外,如果在使用 aiosqlite 以最大化其性能时我应该注意任何特定的策略、技术或模式,我将非常感谢您的指导。感谢您的协助!
async def _execute(self, fn, *args, **kwargs):
"""Queue a function with the given arguments for execution."""
if not self._running or not self._connection:
raise ValueError("Connection closed")
function = partial(fn, *args, **kwargs)
future = asyncio.get_event_loop().create_future()
self._tx.put_nowait((future, function))
return await future
例如,我不明白
self._tx.put_nowait((future, function))
真正做了什么。