您好!欢迎光临工博士商城

PEPPER软银机器人服务商

产品:20    
联系我们
联系方式
  • 联系人:陈诗洁
  • 电话:18621383650
  • 邮件:CSJ@gongboshi.com
  • 手机:18621383650
新闻分类
站内搜索
 
友情链接
首页 > 新闻中心 > pepper机器人链式操作同步异步教程
新闻中心
pepper机器人链式操作同步异步教程
发布时间:2019-12-05        浏览次数:290        返回列表
pepper机器人链式操作同步异步教程
声明:本媒体部分图片、文章来源于网络
版权归原作者所有,如有侵权,请与我联系删除。


pepper机器人编程现场

链式操作
同步或异步

      要同步链操作,通常一个接一个地编写语句,使用前面语句的结果来执行新语句:

// Build an animate action.
Animate animate = ...;
// Run the animate action synchronously.
animate.run();
// Build a listen action.
Listen listen = ...;
// Run the listen action synchronously.
listen.run();

      在这里,我们运行一个 Animate 然后运行 Listen,此时均是同步的方式

      这些操作也可以异步执行:

// Run the animate action asynchronously.
animate.async().run();
// Run the listen action asynchronously.
listen.async().run();

      这些代码段执行异步操作,但它们没有链在一起:两个actions都将同时启动.

      我们想要的是在个操作提供返回结果时执行第二个操作(这里是当动animation结束后listen).我们将在下面看到如何异步链接这些操作.

Futures
什么是一个 future


Future 包装异步操作的对象.

      它允许您在顺序方式编写代码时执行异步操作.

Future 类主要是用于异步执行以下操作:

      创建actions和资源等对象,
      处理action执行(结果,取消和错误),
      链一些action执行资源创建.
      future的状态

      一个Future 有3种状态:它可以提供结果,可以取消或者失败。这些状态对应于wrapped操作的不同*终状态.

      如果一个wrapped操作:

      返回一个值,Future 将在可用时提供此值,
      被取消, Future将会被取消,
      遇到错误, Future 将会失败.
      Future是一个通用类, 这里的 T 是他能提供的值的类型. 比如 Future 能提供一个String 类型的值.

软银机器人+NAO

注意

      如果wrapped的操作没有返回任何东西,那么future的类型就是 Future. 在这种情况下,如果操作成功Future则将以结果状态结束.

      Future 类提供的get方法可以同步访问Future的值:

Future stringFuture = ...;
String value = stringFuture.get(); // Synchronous call to get the value.

      调用get方法会阻塞当前线程:此调用是同步的.

提醒

      同步调用Pepper机器人会阻塞,而异步调用则立即返回值.

      如果在wrapped作中发生错误,get 调用将抛出一个 ExecutionException 如果操作被取消,则get 调用将抛出一个CancellationException.

      使用一个try-catch 来确定Future 完成的状态:

Future stringFuture = ...;
try {
String value = stringFuture.get();
// The future finished with value.
} catch (ExecutionException e) {
// The future finished with error.
} catch (CancellationException e) {
// The future was cancelled.
}




了解资讯:Pepper机器人



 

联系热线:18621383650 联系人:陈诗洁 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 PEPPER软银机器人服务商

返回
顶部