Program in a Program?

one of those things i like about ExecutorService is that invokeAll().
it is basically first setting up a bunch of Callables put them in a Set and invokeAll().
this has the disadvantage that it would block and wait for all the threads to complete and results to return, but this could still be a lot faster if each thread/job takes about same amount of time to complete. But i’d say invokeAll() is very convenient compared to managing the threads separately.

for openGL i’m not too sure if separate sets of GLSL scripts may be generated in different threads and then bundled into a big script say when it gets collected up in draw(), then the whole script could be ‘pushed’ to the hardware to render. but i think there may still be bottlenecks with this approach