【发布时间】:2017-08-19 22:38:28
【问题描述】:
我有一个具有后台线程的网络应用程序。这个线程,它是一个 Executors.newSingleThreadExecutor 被赋予了被认为是低优先级的任务:我不在乎它们什么时候完成。提交的任务通常是一种记录到远程数据库的类型。
我多次阅读到,不应使用 Thread.setPriority 更改线程的实际优先级。既然如此,我不希望我的后台任务干扰我的服务器更重要的任务。可以使用哪些策略?
这是我的想法:
我正在考虑将 Thread.sleep(1) 或 yeild() 放在后台任务的 run() 方法的开头。这将允许其他线程在此时有事可做。但是,这似乎很骇人听闻。有什么建议吗?
【问题讨论】:
-
你在哪里读过很多遍?如果你知道你想做什么,那就去做。它可能没有你想象的那么大的效果,这可能是你未说明的消息来源告诉你的,但如果这是你认为你需要的,你需要它。
标签: java multithreading jvm