平台支持

asyncio 模块被设计为可移植,但某些平台有细微差异和局限性,由于平台的底层体系结构和能力。

所有平台

Windows

源代码: Lib/asyncio/proactor_events.py , Lib/asyncio/windows_events.py , Lib/asyncio/windows_utils.py


3.8 版改变: 在 Windows, ProactorEventLoop 现在是默认事件循环。

Windows 中的所有事件循环都不支持下列方法:

SelectorEventLoop 拥有下列局限性:

ProactorEventLoop 拥有下列局限性:

The resolution of the monotonic clock on Windows is usually around 15.6 milliseconds. The best resolution is 0.5 milliseconds. The resolution depends on the hardware (availability of HPET ) and on the Windows configuration.

Windows 中的子进程支持

On Windows, the default event loop ProactorEventLoop supports subprocesses, whereas SelectorEventLoop 不会。

policy.set_child_watcher() function is also not supported, as ProactorEventLoop has a different mechanism to watch child processes.

macOS

完全支持现代 macOS 版本。

macOS <= 10.8

On macOS 10.6, 10.7 and 10.8, the default event loop uses selectors.KqueueSelector , which does not support character devices on these versions. The SelectorEventLoop can be manually configured to use SelectSelector or PollSelector to support character devices on these older versions of macOS. Example:

import asyncio
import selectors
selector = selectors.SelectSelector()
loop = asyncio.SelectorEventLoop(selector)
asyncio.set_event_loop(loop)
					

内容表

上一话题

策略

下一话题

延伸

本页