Pergunta

Estou trabalhando em um projeto JVM que usa componentes ESRI (baseados em COM, empacotados com JIntegra). O cliente solicitou que os arquivos JAR que produzimos funcionem na JVM e sejam acessíveis ao código Java.Eu gostaria de usar o Scala, mas estou preocupado com o desempenho da biblioteca com os atores do Scala.Particularmente, estou preocupado com os diferentes mecanismos que COM e Java empregam para passar objetos de um thread para outro.

Alguém tem alguma experiência com isto?Eles vão jogar bem?

Editar:para esclarecimento

Percebi que ao realizar E/S no banco de dados ESRI a utilização da CPU é de aproximadamente 15%.Gostaria de ler cada linha e passá-la para outro ator para análise.Então eu poderia ter vários threads lendo do banco de dados de uma só vez.O problema é que cada linha recuperada usando a biblioteca ESRI é na verdade um objeto COM empacotado em Java.

Foi útil?

Solução

Os atores podem não ser o paradigma certo para você então.Idealmente, as mensagens entre os atores serão imutáveis ​​e apenas o estado interno do ator será modificado.Parece que você deseja fornecer uma linha a um ator e, em seguida, fazer com que o ator modifique a linha no local.

Nesse caso, você ainda terá os mesmos riscos de simultaneidade do uso de threads + bloqueios, o que é possivelmente uma solução melhor para esse problema específico.

Por outro lado, se as linhas SÃO imutáveis, e os atores retornam algo que é derivado das linhas (sem tê-las alterado), então deveria "simplesmente funcionar", e eu não estaria especialmente preocupado com as diferentes maneiras pelas quais Java e COM veja tópicos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top