【发布时间】:2015-10-25 16:58:15
【问题描述】:
我正在使用线程在我的应用程序中滚动文本:
public void run() {
super.run();
while (!isInterrupted()) {
if (X >= -getPreferredSize().getWidth()) {
X -= 2;
} else {
decrementMessagesInList(getMessages());
addMessage(getMessages());
prepare();
X = getParentWidth();
}
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
break;
}
repaint();
}
}
但是,看到睡眠时我的 CPU 使用率非常高,我需要减少它。谁能建议怎么做?
【问题讨论】:
-
您告诉组件每 50 毫秒重绘一次。如果您不希望 CPU 使用率那么高,那么 1) 不要每 50 毫秒重新绘制一次,2) 改进您的绘制逻辑以使其更高效。查看Marquee Panel,它会滚动文本以查看 CPU 使用率是否更好。
标签: java multithreading swing