Модель потоков OSGi - PullRequest
       1

Модель потоков OSGi

10 голосов
/ 07 ноября 2010

Я искал в Интернете, но не нашел удовлетворительного ответа. Какая модель потоков присутствует в контейнере OSGi? Это просто порождает новый поток для каждого зарегистрированного пакета, например? Любая ссылка, касающаяся модели потоков, была бы полезна.

Ответы [ 4 ]

10 голосов
/ 07 ноября 2010

Вы ничего не нашли, потому что не существует такой вещи, как "модель потоков OSGi".Пакеты просто существуют и не имеют потоков, если они не запускают их.

4 голосов
/ 18 сентября 2012

Когда вы запускаете пакет, код в активаторе выполняется в одном потоке, аналогично «основному» потоку.Когда основной поток завершает свое выполнение, пакет переходит из состояния «Запуск» в состояние «Активно».Поэтому лучше выполнить код, занимающий много времени, в другом потоке и запустить другой поток из основного потока.

Когда метод обслуживания вызывается от потребителя службы.В это время код, написанный в методе service, выполняется в потоке потребителя сервиса.

Я не нашел никакой разницы между статическими переменными и локальной переменной в методе службы.

4 голосов
/ 08 ноября 2010

Каркас OSGi следует синхронной модели, т.е.все происходит в строгом порядке.Связки не выполняются в потоках (но у них есть свои собственные экземпляры загрузчика классов).Однако есть некоторые исключения.Например, когда событие вызывается с помощью метода postEvent , доставка события выполняется асинхронно, обычно во многих реализациях платформы, как поток

0 голосов
/ 16 апреля 2014

Помимо некоторых особых случаев (События / Слушатели) потоки приложения управляются соседями или не имеют ограничений.Вы можете свободно использовать потоки.Вы должны знать, что некоторые операции в пакете lifecylce должны быть (следовательно) потокобезопасными, и вам нужно быть очень осторожным, чтобы аккуратно разрывать потоки.Вы также должны быть осторожны, чтобы не блокировать операции OSGi без необходимости долго.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...