Scala Actors с Java взаимодействуют с базовыми библиотеками COM - PullRequest
1 голос
/ 29 марта 2010

Я работаю над проектом JVM, в котором используются компоненты ESRI (на основе COM, обернутые JIntegra.) Клиент запросил файлы JAR, которые мы создаем для работы на JVM и которые были бы доступны для кода Java. Я бы хотел использовать Scala, но я беспокоюсь о том, насколько хорошо библиотека сыграет с актерами Scala. Особенно меня беспокоит то, что COM и Java используют разные механизмы для передачи объектов из одного потока в другой.

У кого-нибудь есть опыт работы с этим? Будут ли они играть хорошо?

Редактировать: для уточнения

Я заметил, что при выполнении операций ввода-вывода в БД ESRI загрузка ЦП составляет примерно 15%. Я хотел бы прочитать каждую строку и передать эту строку другому актеру для разбора. Тогда я мог бы одновременно читать несколько потоков из БД. Проблема в том, что каждая строка, полученная с использованием библиотеки ESRI, на самом деле является COM-объектом в Java-оболочке.

1 Ответ

1 голос
/ 22 апреля 2010

Актеры, возможно, не являются подходящей для вас парадигмой. В идеале сообщения между актерами должны быть неизменными, и будет изменено только внутреннее состояние актера. Звучит так, будто вы хотите указать строку для актера, а затем попросить актера изменить строку на месте.

Если это так, вы все равно будете подвергаться риску параллелизма, так же как и использование потоков + блокировок, что, возможно, является лучшим решением для этой конкретной проблемы.

С другой стороны, если строки являются неизменяемыми, и актеры возвращают что-то, полученное из строк (без их изменения), тогда это должно "просто работать", и меня не будут особенно беспокоить разные способы в котором Java и COM видят потоки.

...