gpt4 book ai didi

java - 在单独的线程上进行网络操作和解析

转载 作者:行者123 更新时间:2023-11-30 03:24:23 26 4
gpt4 key购买 nike

将网络操作拆分到单独的线程上是否有好处?我意识到两者都应该在非 UI 线程上执行;那不是我的问题。网络操作是否应该在网络线程上运行,然后将数据传递给解析线程进行解析?

以下是我看到的一些权衡:

  • 两种类型的操作不能互相阻塞(?)
  • 这两类操作可以放在不同的线程池中,分别调优

反对

  • 上下文切换会带来一些延迟
  • 线程越多,越复杂
  • 流解析变得困难/不可能

最佳答案

您几乎已经自己回答了这个问题。真的不会,除非您正在执行的解析需要很长时间。网络操作几乎总是成为您应用程序的瓶颈,因此请考虑权衡您正在执行的处理是否会占用线程可以从 Internet 下载的宝贵时间。

对于解析需要几微秒到几毫秒的大量应用程序,我看不出用户有什么明显的区别。如果您的解析需要相当长的时间,您可以像您所说的那样创建一个单独的线程来进行解析,并在它们之间创建生产者/消费者关系。这会给您的应用程序增加相当多的复杂性,我认为这是不值得的,除非您执行了某种分析以确定这是一个问题。

确保您没有对您的应用程序进行过早的优化,并且您已经对它进行了概要分析(或确定知道)以确定这是否有必要。 :)

关于java - 在单独的线程上进行网络操作和解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18513970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com