繁体   English   中英

多线程环境中的readTimeout

[英]readTimeout in a multithreaded environment

我有一个由抓取网页的工作人员组成的系统。 现在,我设置URLConnection的两个参数:connectTimeout和readTimeout。

可以推断,该应用是多线程的。
问题:

  1. 这意味着如果我将超时设置为10秒。 线程尝试读取的时间实际上并不是10秒。 实际上,如果我们有很多线程,则可能是我们的线程饿了,等到它有机会保持(甚至开始)阅读时,它就会超时
  2. 如果以上情况正确,我该如何处理? 首先想到的是考虑到线程数,选择正确的数字。

有更好的解决方案吗?

简而言之,除非您使用100线程中的线程数,否则您不必担心饥饿。 线程由于上下文切换而丢失的时间实际上可以忽略不计。 (请记住,您的计算机很可能具有多个处理器,并且IO可能是经过IO处理的组件,而不是处理器)。 因此,在大多数情况下,您的10秒超时实际上是10秒超时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM