@@ -0,0 +1,629 @@
+package eco.game;%0A%0Aimport java.util.concurrent.ExecutorService;%0Aimport java.util.concurrent.Executors;%0A%0Aimport org.lwjgl.opengl.SharedDrawable;%0A%0A/**%0A * This class manages concurrency through a thread pool%0A * %0A * Also holds the LWJGl drawable, used to pass around the openGL context%0A * %0A * @author phil%0A * %0A */%0A%0Apublic class ThreadManager %7B%0A%0A%09// Cores + 1 is the optimal size for a pool%0A%09private static ExecutorService pool = Executors.newFixedThreadPool(Runtime%0A%09%09%09.getRuntime().availableProcessors() + 1);%0A%0A%09public static SharedDrawable drawable;%0A%0A%09public static void addJob(Runnable runnable) %7B%0A%09%09pool.execute(runnable);%0A%09%7D%0A%0A%7D%0A

Create ThreadManager.java