我发现自己需要将 Trio 任务与 Python 线程同步。目前,我正在使用threading.Lock
Trio 任务必须使用trio.run_sync_in_worker_thread(lock.acquire)
.
我认为也应该可以使用trio. Lock
锁并让线程使用trio.BlockingTrioPortal.run_sync(lock.acquire)
.
这些解决方案中的任何一个都比另一个有优势吗?
原则上会比这做得更好吗?例如,实现一个“本机”三重奏方法,无需单独的工作线程就可以等待threading.Lock
,或者是否有根本原因需要这样做?