implement thread factory to generate custom thread
use thread factory in executor