Fix Thread constructor issue, move logics into function Thread::init().
Add Thread::process to handle the real logics, and expose run function to start the thread loop, and also give an default implementation of function run.
Add thread status check function.
Remove unnecessary lock & unlock by lock object value.