У меня есть объект MyThread, который я создаю, когда мое приложение загружается через сервер, я отмечаю его как поток Daemon, а затем вызываю start()
на нем. Поток предназначен для сидения и ожидания информации из очереди, пока приложение активно.
Моя проблема/вопрос в том, что: В настоящее время MyThread расширяет Thread, потому что я отмечаю его как Daemon, и я читал о том, как более целесообразно реализовать Runnable и использовать Executors. Поэтому я хотел спросить, будет ли MyThread реализовывать Runnable вместо продолжения Thread (и, конечно же, будет переименован), и я буду использовать newSingleThreadScheduledExecutor()
как, что, а может и где, я помечен как Daemon.
Надеюсь, что я не испортил термины, пожалуйста, извините меня, если у меня есть, поскольку некоторые части многопоточной среды для меня очень новы.
Спасибо Еффая
Обновление:
Модуль, о котором я упоминаю в своем приложении, - это веб-приложение, которое имеет несколько потоков на самом деле такого типа, и то, что у них есть, есть все, что они все в ServletContext
как член по разным причинам. В настоящее время я расширяю Thread
до WebThread
, который имеет ServletContext
как memebr, и все подклассы могут использовать это. Если я переключусь на парадигму Runnable с Executor и ThreadFactory, то в основном мне нужен уродливый гибрид WebRunnable
, который реализует Runnable
и имеет ServletContext
как открытый член и имеет мой ThreadFactory
реализация newThread(WebRunnable arg0)
в дополнение к newThread(Runnable arg0)
.
Я не уверен, что лучше всего.
Благодаря