Java命令行应用程序在不占用资源的情况下进行后台工作的正确方法是什么?它应该在循环中使用sleep()还是更优雅/有效的方式?
解决方法:
一些启发式:
>不要试图在您的应用程序中做出调度决策.操作系统的调度程序比你的更好.让它完成它的工作.
>如果您不需要,请不要进行民意调查.例如,而不是睡n秒,然后醒来检查一个未阻塞的套接字,阻塞套接字.第二种策略在操作系统的调度程序中运行得更好.
>如果不需要,请不要使用庞大的堆,并尽量不要同时分配大量的内存.颠簸应用程序往往会对系统性能产生负面影响.
>使用缓冲I / O.总是.如果您认为需要非缓冲I / O,请绝对确定您是对的. (你可能错了.)
>不要产生很多线程.线程非常昂贵;超过某一点,更多线程将降低您的应用程序的性能配置文件.如果你有很多工作要做,请学习并使用java.util.concurrent.
当然,这只是一个入门名单……
标签:java,background
来源: https://codeday.me/bug/20190713/1452794.html