gpt4 book ai didi

java: datainputstream: 读取调用在等待数据时占用处理器时间吗?

转载 作者:行者123 更新时间:2023-11-29 08:19:40 28 4
gpt4 key购买 nike

如果我在 DataInputStream 上调用 read(),它会占用 CPU 周期等待数据,还是会产生当前线程并被中断信号唤醒,表明数据已到达?

我的动机是确定流读取器是否需要在其自己的线程中。占用 CPU 时间的阻塞读取并不理想,因为这会挂起主线程。

相关问题:当​​方法被描述为阻塞时,是否暗示线程在等待时让步?或者没有契约(Contract)/保证?一种不断检查/轮询数据的方法在我看来仍然会阻塞。

最佳答案

一般情况下,I/O会导致读线程阻塞,直到有数据可用,其他线程才有空运行。当数据到达时,读取器被解锁。

阻塞意味​​着被阻塞的线程等待解除阻塞,而其他线程运行。您通常不会发现(在设计良好的代码中 - 而不是在 Java 运行时中)在轮询数据时循环的忙等待代码。

另一方面,我已经看到了我必须接管的几乎所有代码:-(

关于java: datainputstream: 读取调用在等待数据时占用处理器时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1134548/

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