Вызов методов
13.07.2016
Вызов блокирующих методов - блокирование связующих потоков, как в методе mISynchronous.getThreadNameBlocking(), также блокирует и потоки-клиенты, пока удалённый метод не получит возможности завершить свою работу. Если несколько потоков-клиентов одновременно вызовут блокирующие методы в процессе-сервере, пул связующих потоков может быть исчерпан, и прочие потоки-клиенты не смогут получить результатов удалённых вызовов. Если из-за блокировок в процессе-сереве- ре не останется доступных связующих потоков, вы не сможете разблокировать ранее заблокированные потоки с помощью удаленного вызова getThreadNameUnblock (). В этом случае сервер должен задействовать свои внутренние потоки для снятия блокировок, иначе он не сможет обработать ни одного входящего вызова, и все потоки-клиенты, ожидающие возврата значений из методов сервера, окажутся заблокированы навсегда. Заблокированные Java-потоки обычно могут быть возобновлены, в том смысле, что другой поток может вывести заблокированный поток из его текущего состояния и позволить ему завершить своё выполнение. Но потоки в процессе-клиенте не имеют прямого доступа к потокам в процессе-сервере и поэтому не могут воздействовать на удалённые потоки. Более того, потоки-клиенты, ожидающие возврата из синхронных RPC, не имеют возможности перехватывать и обрабатывать какие-либо прерывания.
Вызов методов с совместно используемым состоянием - AIDL позволяет процессам-клиентам выполнять методы в процессе-сервере параллельно. При этом должно соблюдаться стандартное правило: ответственность за безопасность потока возлагается на реализацию интерфейса. В приведённом выше примере методы mISynchronous.getThreadNameBlocking () и mISynchronous.getThreadNameUnblock() совместно используют объект CountDownLatch, но этот объект никак не защищён от одновременного доступа сразу из нескольких потоков. Поэтому нельзя с уверенностью сказать, что блокировка, установленная с помощью метода getThreadNameBlocking(), сохранится, пока этот же клиент не вызовет getThreadNameUnblock(). Любой другой клиент может выполнить этот вызов раньше и снять блокировку. Необходимо сдать металлолом? На интернету ресурсу компании Reallom вы сможете узнать пункты приемы и действующие расценки.
Клиент никогда не должен делать предположений о скорости синхронного вызова удалённого метода и возможности безопасно вызвать его из UI- потока. Со временем реализация процесса-сервера может измениться и оказывать отрицательное воздействие на отзывчивость Ul-потока. Поэтому для вызовов удалённых методов лучше пользоваться рабочими потоками- клиентами, за исключением тех редких случаев, когда реализация удалённых методов хорошо известна и вы сами управляете ею.
Каталог раций |
Народная рация (популярная рация)
| Kenwood TK-450Частоты: | | Приёма (RX): | 400-470 | Передачи (TX): | 400-470
| Вых.мощность: | 1.0,4.0 ватт
| Каналов памяти: | 199
| Шаг: | 6.25 кГц
| Ак.батарея: | Li-Ion, 7.4v, 1100mAh
|
| Купить Kenwood TK-450 ... |
Другие производители в Каталоге:
Yaesu,
Alinco,
Motorola,
Icom,
Kenwood,
Alan,
Midland,
Voxtel,
JJ-Connect,
Linton,
Kirisun,
Радант,
Diamond,
OPEK,
Anli,
... |
|
Фотогалерея |
|
|
Авторизация/h3> |
| За 10 минут: Гостей: 25 Пользователей: 1 Всего на сайте: 26
Пользователи: • Рысич
|
|
|
Ваше мнение |
Нужна ли "цензура" модераторами тем обсуждений в сети, например "Религия"
|
|
Реклама/h3> |
|
|
куплю-продам/h3> |
Для данного блока нет содержания |
|
|