Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以及何时使用';异步';在AWS SES Java SDK中_Java_Amazon Web Services_Amazon Ses - Fatal编程技术网

如何以及何时使用';异步';在AWS SES Java SDK中

如何以及何时使用';异步';在AWS SES Java SDK中,java,amazon-web-services,amazon-ses,Java,Amazon Web Services,Amazon Ses,我只是在玩AWS Java SDK中用于发送电子邮件的SES包。我意识到有一个类[AmazonSimpleEmailServiceAsyncClient][1],包含很多 带有Async标签的方法 我只是好奇我们什么时候必须使用它,为什么,以及如何使用它。我已经到处找过了,但是没有很好的资源。使用代码片段进行一些概念性的解释会很好。这些异步方法适用于中的大多数/所有服务,并且通常在开始时不使用,因为异步编程的复杂性稍高,而仅当特定用例建议或要求时才使用(因此,本答案仅从概念角度解决您的问题,而不

我只是在玩AWS Java SDK中用于发送电子邮件的SES包。我意识到有一个类
[AmazonSimpleEmailServiceAsyncClient][1]
,包含很多 带有
Async
标签的方法


我只是好奇我们什么时候必须使用它,为什么,以及如何使用它。我已经到处找过了,但是没有很好的资源。使用代码片段进行一些概念性的解释会很好。

这些异步方法适用于中的大多数/所有服务,并且通常在开始时不使用,因为异步编程的复杂性稍高,而仅当特定用例建议或要求时才使用(因此,本答案仅从概念角度解决您的问题,而不是针对具体问题)

你可以在Jason Fulghum最近的博文中找到一个很好的解释:

当您使用一个标准的、同步的 SDK中的客户端,当SDK发送您的代码时,您的代码被阻止 请求,等待服务处理它,并解析响应。 这是一种使用SDK的简单方法,但是有一些 在这种情况下,您只想启动请求,并让您的 代码继续执行。SDK中的异步客户端允许您 要做到这一点,请启动您的请求,稍后再查看 看看他们是否完成了

Jason还解释了在后台处理请求最常见的两种用例:

  • 用户界面响应性-用户界面应用程序非常适合异步客户端,因为您不希望在SDK处理请求时锁定主用户界面线程,从而锁定整个用户界面。网络问题可能导致处理时间延长,用户界面无响应,导致客户不满意。
  • 批处理-异步客户端的另一个重要用途是当您想要启动一大批请求时。如果请求不需要串行执行,那么您可以通过使用异步客户端启动多个请求(全部来自单个线程),在应用程序中获得大量吞吐量
  • Jason的帖子还链接到了他之前关于主题的更详细的文章,该文章描述了使用AWS SDK for Java发出请求的各种同步和异步方法,并总结了一些其他信息,以帮助您成功使用异步功能,请参阅(其他方面基本相同的代码示例也包括异常处理)