/ / Warum blockiert ein Java-Thread OpenGL-Rendering, das in einem anderen Thread ausgeführt wird? - java, multithreading, opengl, lwjgl

Warum blockiert ein Java-Thread das OpenGL-Rendering, das in einem anderen Thread ausgeführt wird? - Java, Multithreading, OpenGL, Lwjgl

Wenn ich versuche, meinen verwendeten Java-Code auszuführenLeichte Java Game Library (LWJGL) in einem Thread, alles funktioniert gut. Wenn ich jedoch einen zweiten Java-Thread starte, der einfach ständig Text druckt (siehe Pseudocode der Text-Thread-Klasse unten), reagiert mein OpenGL-Programm nicht mehr, der Text wird jedoch weiterhin gedruckt. Es werden keine Fehler angezeigt.

 public class TextPrinterThread implements Runnable {
public void run() {
while(true) {
System.out.println("My text");
}
}
}

Ich habe gelesen, dass OpenGL Probleme mit Multithreading hat Hier und Hier und so weiter, aber ich versuche nicht zu trennenOpenGL-Job in mehreren Threads. Ich benutze einen Thread ausschließlich für OpenGL und einen anderen Thread, um Nicht-OpenGL-Code auszuführen. Ich habe im Internet keine Vorschläge gefunden, was die Ursache meines Problems ist. Ich habe versucht, die Thread-Prioritäten zu ändern, aber es half nicht. Jede Hilfe wäre dankbar.

Antworten:

0 für die Antwort № 1

weil dieser Thread CPU belegt,

Verify: Schlaf nach Druck hinzufügen, ob der Haupt-Thread wiederhergestellt wurde.