Использование threadlocal для привязки экземпляра класса к потоку

У меня есть некоторые трудности с пониманием использования ThreadLocal в приведенном ниже объявлении. Означает ли это, что даже если экземпляр объявлен как статический, каждый поток будет иметь свой собственный экземпляр класса DomainEventPublisher

private static final ThreadLocal<DomainEventPublisher> instance = new ThreadLocal<DomainEventPublisher>() {
        protected DomainEventPublisher initialValue() {
            return new DomainEventPublisher();
        }
};

person Somasundaram Sekar    schedule 07.10.2015    source источник
comment
При условии, что вы вызываете instance.get() в каждом потоке, да.   -  person Andy Turner    schedule 07.10.2015


Ответы (1)


Да, именно для этого и предназначен ThreadLocal.

В вашем примере каждый поток будет иметь другой экземпляр DomainEventPublisher

person Jean Logeart    schedule 07.10.2015