Java executor framework (java. util. concurrent. Executor), released with the JDK 5 is used to run the Runnable objects without creating new threads every time and mostly re-using the already created threads. ... Creating a thread in java is a very expensive process which includes memory overhead also.