小编Hea*_*ath的帖子

一个线程使用多个核心(四核上的CPU使用率> 25%)

我刚开始用Java编程,我对计算机如何分配CPU负载感兴趣.我已经制作了一个非常基本的程序,可以创建一个窗口并进行框和线移动.在测试时,我查看了任务管理器; 任务经理说我使用了大约1%的CPU.但是,当我运行我的程序时,CPU使用率上升到~36%(我只启动了程序,没有别的).谁能告诉我这里发生了什么事,拜托?

在此输入图像描述

java cpu multithreading taskmanager

2
推荐指数
1
解决办法
234
查看次数

当代码不滞后时,Java 窗口在 Ubuntu 上出现滞后,但在 Windows 上则不然

编辑:这个错误仅当我在 Ubuntu 14.04 笔记本电脑上运行游戏时才会发生。当我在 Windows 学校计算机上运行它时,它运行良好。

正常运行时窗口滞后,但当我用鼠标调整窗口大小时停止滞后

我正在尝试用 java 制作一个简单的游戏,但是当我运行它时,它会疯狂地滞后,我查看了代码,并对 System.out.println 和 System.currentTimeMillis 进行了一些检查,并且代码运行不到一毫秒,所以这不是问题。

当我拖动以调整窗口大小并不断更改窗口的大小(大概强制屏幕重绘)时,程序会停止,当我这样做时,它具有非常流畅的动画。

当我的程序运行时,它以平滑的动画开始,然后大约 1 秒后它达到大约 2 FPS,再过一秒达到 1 FPS,然后大约 0.5FPS 并保持在那里,直到我通过调整大小强制重新绘制。窗户

我的代码是:

public class WindowSetup extends JPanel{
private static final long serialVersionUID = 6486212988269469205L;
static JFrame frame;
static JPanel panel;
protected void paintComponent(Graphics g){
    super.paintComponent(g);
    GameClass.draw(g);
}
public static void main(String[] args) {
    frame = new JFrame("Evolver");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(800, 600);
    panel = new WindowSetup();
    frame.add(panel);
    panel.setVisible(true);
    frame.setVisible(true);

    GameClass.init();
    ActionListener al = new ActionListener() {

        public void …
Run Code Online (Sandbox Code Playgroud)

java swing

1
推荐指数
1
解决办法
1558
查看次数

标签 统计

java ×2

cpu ×1

multithreading ×1

swing ×1

taskmanager ×1