Runnable
Blocked in Object`s Wait Pool
开始
Running
Blocked in Object`s Lock Pool
synchronized
I/O interuptsleep()join()
wait()[must have lock]releases lock
Blocked
start()
CPU scheduler
notify()notifyAll()interrupt()
结束
acquires lock
sleep() timeoutthread joins or interrupt()
run() completes
yield()