Блокировки
Процесс может быть в одном из четырех состояний:
New: Процесс был создан, но не был еще запущен, так что он не может выполняться.
Runnable: Это означает, что процесс может
быть выполнен когда механизм распределения квантов времени CPU даст возможность выполняться процессу. Так, процесс может, а может и не быть выполняемым, но ему ни чего не препятствует быть выполняемым в том момент, когда пришла его очередь (квант времени); он не мертв и не заблокирован.
Dead: Нормальный способ процесса завершиться является возврат из его run() метода. Можно также вызвать stop( ), но это вызовет исключение являющееся подклассом Error (что означает, что вы не поместили вызов в блок try). Помните, что генерация исключения должно быть специальным событием и не является частью нормального хода выполнения программы; так, использование stop() запрещено (deprecated) в Java2. Также существует метод destroy() (который ни когда не был реализован), который вы не должны вызывать если можно этого избежать поскольку это радикальное решение и не снимает блокировку объекта.
Blocked: Процесс может быть запущен, но не будет выполняться. Пока процесс находиться в блокированном состоянии планировщик просто пропускает его и не выделяет квантов времени. До тех пор, пока процесс не перейдет в состояние runnable, процесс не выполнит ни одной операции.