![](/img/trans.png)
[英]Waiting for an http response to return from vertx WebClient using CountDownLatch
[英]Android\Java CountDownLatch block handle HTTP response
我有一个线程将请求发送到服务器并处理来自服务器的请求。
我在线程中使用CountDownLatch时遇到麻烦。
当我发送请求时,我稍后会做latch.await()
,并尝试从服务器获取请求后尝试使用latch.countDown()
,但是我认为当响应到来时,由于主线程被阻塞,它没有在侦听器中调用。 我将用下面的图片解释我的问题:
那么我该如何解决这个问题,或者可能存在另一种解决此问题的方法?
首先,阻塞Main线程是一个非常糟糕的做法,因为您的UI变得无响应,您绝对应该避免这种情况。
一个简单的解决方案可能是使用AsyncTask ,如果您阅读了文档,它确实为您处理了执行流程,将结果从工作线程传递到UI线程。
如果不需要直接影响设备UI的结果,则可以使用IntentService 。
肯定还有其他解决方案可用(即使有闩锁),但一般规则应为:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.