当前位置: 首页 > 面试题库 >

ImageIO write()是阻塞方法吗?

舒嘉德
2023-03-14
问题内容

在我用Java开发的应用程序中,我正在使用ImageIO
API缩放图像,然后将它们写入目录,然后通知Web服务器准备使用图像。将信号发送到Web服务器之前的最后一个调用是ImageIO.write()方法,但是此时Web服务器无法找到生成的图像。(稍后几毫秒,Web服务器便可以看到它们。)

我怀疑ImageIO.write()正在异步运行。我已经搜索了很多,但是找不到ImageIO.write()是同步操作还是异步操作。如果ImageIO.write()没有阻止程序流,是否有一种非黑客方式让它等待直到将映像写入目标目录为止?


问题答案:

我无法想象这ImageIO.write没有阻碍。

我的“假设”基于ImageIO.write会引发异常的事实,这表明,即使它是在后台写入,它也需要阻塞直到写入完成才能抛出异常。

这可能是一个缓冲问题?

尝试做某事while (!file.exits()) Thread.sleep(25)或某事有止步不前



 类似资料:
  • 我有一个顶点,它有一个处理程序,可以在事件循环线程中调用Vertx的Web客户端。实际的底层API调用是同步的还是异步的?它会阻塞我的事件循环线程吗?假设我的API调用需要30秒才能返回。 我是否需要用Vertx.execute阻塞(p-

  • ReplyingKafkaTemplate是否阻塞?有无反应性替代方案?

  • 我正在努力实现未来 根据官方文件,我们可以推断: > 方法取消()不会抛出像InterruptedException或ExecutionException这样的异常。此外,它没有超时的变体。所以看起来,它不应该被阻塞。 文件说 此方法返回后,对isDone()的后续调用将始终返回true。 但是 boolean isDone()如果此任务完成,则返回true。 因此,如果我们在任务处理时运行取消(

  • 注意:这个示例非常简单,但它得到了我想要实现的跨越的想法。 我有一个类(称为),它接受作为构造函数参数;它有一个方法,该方法生成一个执行以下操作的新线程(为简洁起见,大大减少了): 在正常操作中,调用会阻塞,直到与建立连接为止。 但这让我产生了错误的感觉;我不是真的在寻找至少一个互动,我真的在寻找一个互动。 我可以这样做(返回一次模拟的套接字,然后返回null): 但是,我仍然有大量对的调用,这些

  • 本文向大家介绍js加载过程阻塞,解决方法?相关面试题,主要包含被问及js加载过程阻塞,解决方法?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 指定script标签的async属性。 如果async="async",脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行) 如果不使用async 且 defer="defer":脚本将在页面完成解析时执行

  • 假设我们有: 线程1,包含actor A、B和C。 包含执行元y的线程2。 包含演员Z的线程3。 演员A和B正在监听演员Y的消息。 然后,参与者C向参与者Z发出阻塞请求。 我包含了Actor Y,以允许它在Z处理来自C的请求时发送消息。 所有线程都在不同的物理核心上--它们并行运行。