Android Studio Java线程导致延迟

Android Studio Java线程导致延迟,java,android,multithreading,Java,Android,Multithreading,在我的应用程序中,我有一大堆需要更新的对象。我试图制作一个线程来提高性能,但作为交换,我获得了巨大的滞后,如此之多的滞后使我的应用程序因没有响应而崩溃 playerR = new Runnable() { public void run() { for (j = 0; j < platforms.length; j++) for (i = 0; i < blocks.get(j).size(); i++) {

在我的应用程序中,我有一大堆需要更新的对象。我试图制作一个线程来提高性能,但作为交换,我获得了巨大的滞后,如此之多的滞后使我的应用程序因没有响应而崩溃

playerR = new Runnable() {
    public void run() {
        for (j = 0; j < platforms.length; j++)
            for (i = 0; i < blocks.get(j).size(); i++) {
                block = blocks.get(j).get(i);
                block.update(playerClass.posX, playerClass.posY, playerClass.immune, playerClass.sizeX, errorLeft, errorRight, 0);
                block.update(dumbAi.posX, dumbAi.posY, dumbAi.immune, dumbAi.sizeX, errorLeft, errorRight,1);

                block.draw(cameraX, cameraY, spriteBatch);
            }
        synchronized (this) {
            try {
            } catch (Exception e) {}
        }

    }
};
playerThread = new Thread(playerR);
playerThread.start();
playerR=new Runnable(){
公开募捐{
对于(j=0;j

此代码位于main类的render()函数中。有什么建议吗?我是个新手

使用
调试器
查找代码中执行挂起的确切位置。为什么同步部分是空的?

您的手机可能没有多个核心,功能也不够强大。它是在你的手机上还是在你的模拟器上崩溃?另外,使用线程渲染东西可能会变得很奇怪,通常执行所有处理,然后分别渲染所有内容比同时执行两者效果更好。这也可能是一个死锁,尽管没有足够的代码来说明。检查你的逻辑。我不确定这是否是对你问题的回答,但代码是相当破碎的。在我看来,对“平台”和“块”的访问似乎没有正确同步。。。“同步”块根本没有做任何事情。最后,如果“block.draw”确实尝试绘制任何内容,那么您将在尝试从工作线程中修改UI对象时出错。我什么都不绘制,我不是那个noob。但我不知道synchronized做什么,所以我应该如何使用它?