V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  likeyiyying  ›  全部回复第 1 页 / 共 1 页
回复总数  2
333 天前
回复了 nicholasxuu 创建的主题 全球工单系统 阿里云镜像仓库崩了
确实崩了
2023-05-16 15:53:54 +08:00
回复了 d29107d 创建的主题 Python 一个关于协程的 Python 面试题
这是 GPT4 的回答,考察的应该是:asyncio.to_thread 这个知识点。

You can use asyncio.to_thread() to run the synchronous function sync_f() in a separate thread, allowing it to run concurrently with the asynchronous function async_g(). Here's how you can achieve this:
python

Copy

import asyncio
import threading
import time

def sync_f(a=None):
lock = threading.Lock()
lock.acquire(blocking=False)
lock.acquire(timeout=3)
return 2

async def async_g(a=None):
await asyncio.sleep(3)
return 1

async def main():
# Run sync_f() in a separate thread and async_g() concurrently
sync_f_task = asyncio.to_thread(sync_f)
async_g_task = async_g()

results = await asyncio.gather(sync_f_task, async_g_task)
print(results)

if __name__ == "__main__":
asyncio.run(main())
This code will run both sync_f() and async_g() concurrently, and print their results once both are completed.
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   943 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 21:01 · PVG 05:01 · LAX 13:01 · JFK 16:01
Developed with CodeLauncher
♥ Do have faith in what you're doing.