update: add LcokAndUnlock for instead of mutexGuard and add threadpool struct