Rename thread_pool to async_thread_pool
Add executor thread pool
Per thread queue
Use lambda instead of bind