thread pool, worker thread , draft version