Требуется 1 экземпляр для 1 потока, поскольку этот поток имеет внутреннее состояние, которым он будет управлять.
Рассматривайте темы как своего рода ресурс. Обычно не имеет смысла, чтобы 1 экземпляр ссылался на несколько ресурсов - (точно так же, как вы не можете иметь объект Java, ссылающийся на более чем 1 файл).
Это также доставит вам массу неприятностей, если вы запустили поток дважды, и вы либо унаследовали от Thread
и сделали несколько переменных экземпляра, к которым теперь обращается более 1 потока, - то же самое, если вы создаете поток из Runnable
. По крайней мере, API не делает это легким делом, чтобы сделать этот провал.
Взгляните на состояния, в которых может находиться поток, здесь http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.State.html
По сути, единственный раз, когда вы можете запустить поток, это когда он находится в состоянии NEW
. И ни одно из других состояний не может перевести его обратно в NEW