Imagem de fundo

Considere o desenvolvimento de uma aplicação em um contexto...

Considere o desenvolvimento de uma aplicação em um contexto de programação concorrente, em que é esperada a execução simultânea de múltiplas tarefas computacionais. O time utiliza a linguagem de programação JAVA e o framework ORM Hibernate no projeto. Para obter um objeto do tipo SessionFactory, o time decide utilizar o arquivo de configuração e as seguintes classes:


org.hibernate.cfg.Configuration,

org.hibernate.service.ServiceRegistry e

org.hibernate.service.ServiceRegistryBuilder.


No início do desenvolvimento da primeira funcionalidade com linhas de execução paralelas (Threads), o time discute se é seguro compartilhar o objeto do tipo SessionFactory.

Um dos desenvolvedores afirma que é seguro.

O time concluiu acertadamente que esse desenvolvedor está:


A

errado, pois a classe SessionFactoryImpl implementa a interface Referenceable;


B

errado, pois a classe SessionFactoryImpl não é thread-safe;


C

errado, pois a classe SessionFactoryImplementor não é thread-safe;


D

correto, pois o objeto do tipo SessionFactory é imutável e seu estado interno contém os metadados ORM;


E

correto, pois a classe SessionFactoryImplementor implementa a interface ConcurrentHashMap.