Выбор подхода


В данный момент вы можете спросить, почему Java предлагает два способа создания дочерних потоков, и какой из этих подходов лучше. Ответы на эти вопросы взаимосвязаны. Класс Thread определяет несколько методов, которые могут быть переопределены в классах-наследниках. Из этих методов только один должен быть переопределен в обязательном порядке,— это метод run (). То есть, конечно, этот же метод нужен, когда вы реализуете интерфейс Runnable. Многие программисты Java считают, что классы следует расширять только в случаях, когда они должны быть усовершенствованы или некоторым образом модифицированы. Поэтому если вы не переопределяете никаких других методов Thread, то вероятно, лучше просто реализовать интерфейс Runnable. Конечно, все остается на ваше усмотрение. Тем не менее, в оставшейся части настоящей главы мы будем создавать потоки, используя классы, реализующие интерфейс Runnable.