我正在开发一个通过HTTP传输音乐的Java应用程序,我遇到的一个问题是,当应用程序从磁盘读取音频文件并将其发送到客户端时,它通常会将CPU最大化为90-100 %(可能导致用户运行其他应用程序时出现问题).
是否可以控制执行此工作的线程使用较少的CPU,还是需要由OS控制?是否有任何技术可以管理您目前的应用程序密集程度?
我知道你可以启动具有高/低优先级的线程,但在这种情况下,这似乎对我没有任何影响.
(我无法理解"我已经要求计算机做某事,所以它显然会尽可能快地完成它......")
谢谢!
竿.
这项任务(从磁盘读取一个文件,并通过HTTP发送的话)应该不能使用CPU的任何显著量,尤其是在音乐流所需的比特率(除非你在谈论的多通道未压缩的PCM或类似的东西,但即便如此它应该是I/O绑定而不是使用大量的CPU).
你可能以非常低效的方式进行阅读/写作.您是单独读/写每个字节还是使用某种缓冲区?