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.