likeyiyying 最近的时间轴更新
likeyiyying

likeyiyying

V2EX 第 404198 号会员,加入于 2019-04-22 19:17:35 +08:00
likeyiyying 最近回复了
350 天前
回复了 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   ·   实用小工具   ·   5719 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 01:50 · PVG 09:50 · LAX 17:50 · JFK 20:50
Developed with CodeLauncher
♥ Do have faith in what you're doing.