Разница между Thread и runnable. Если мы создаем Thread с использованием класса Thread, тогда количество потоков равно количеству созданного нами объекта. Если мы создаем поток, реализуя интерфейс runnable, мы можем использовать один объект для создания нескольких потоков. Один объект разделяется несколькими Thread.So он будет потреблять меньше памяти
. Поэтому в зависимости от требования, если наш данные не являются сенситивными. Таким образом, он может быть разделен между несколькими Thread, которые мы можем использовать интерфейс Runnable.
например. см. Контекст сервлета в кластерной среде , который объясняет проблему:
В случаях, когда контейнер распределен по многим виртуальным машинам, веб-приложение будет иметь экземпляр ServletContext для каждая JVM.
Атрибуты контекста являются локальными для JVM, в которой они были созданы. Это не позволяет атрибутам ServletContext быть хранилищем общей памяти в распределенном контейнере. Когда необходимо разделить информацию между сервлетами, работающими в распределенной среде, ее следует поместить в сеанс, сохранить в базе данных или установить в компоненте Enterprise JavaBeans. Атрибуты сеанса должны быть сериализуемыми, если они должны обрабатываться несколькими JVM, что является требованием для кластеризации. Можно сделать некоторые поля атрибута сеанса некластеризованными, объявив эти поля как переходные.
blockquote>