惯用异步设计

Mat*_*een 8 python asynchronous

在编写异步API时,我可以使用哪些有用的习惯用法吗?我希望标准化一些东西,因为我似乎总是使用一些不同的样式.似乎很难使异步代码变得简单; 我想这是因为异步操作不过是.

在最基本的层面上,API的用户必须能够:

  1. 在数据可用时将数据推送给他们
  2. 检查异步操作的状态
  3. 收到发生错误的通知
  4. 等待完成(将异步操作转换为同步操作)

我的类支持多个异步操作.我一直在课堂上放置一些状态/错误回调,但是这个类在很多偶然的字段中变得很糟糕,而且变得太大了.我很好奇是否有人使用过他们发现组织良好的异步API.我查看了.NET的Begin/EndAsyncOperation + AsyncResult设计,以及Java中的一些类(例如Future).

这是用Python编写的,因此它仍然非常灵活.有一点需要注意:其中一些异步操作正在被封送到远程机器并在那里执行.因此,并非每个操作都必须在单独的线程中执行.

Cha*_*tin 2

另请查看异步完成令牌和 ActiveObject 模式。