Как делают супервизор обрабатывает управляющие процессы? То же может быть сделано на JVM?

" (строка) o" приведет к InvalidCastException, поскольку нет никакого прямого броска.

"o, поскольку строка" приведет к s быть нулевой ссылкой, а не выданным исключением.

"o. ToString ()" не является составом исполнителей никакого серовато-синего вида, это - метод, это реализовано объектом, и таким образом так или иначе, каждым классом в .net, который "делает что-то" с экземпляром класса, к этому обращаются и возвращает строку.

не забывают, что для преобразования в строку, существует, также Преобразовывают. ToString (someType instanceOfThatType), где someType является одним из ряда типов, по существу базовые типы платформ.

8
задан Alan Kent 19 July 2009 в 04:12
поделиться

4 ответа

Erlang OTP Контроль обычно не выполняется между процессами на разных узлах. Это сработает, но лучше всего сделать это по-другому.

Обычный подход - написать все приложение так, чтобы оно работало на каждой машине, но приложение знает, что оно не одно. И в какой-то части приложения есть монитор узлов, поэтому он знает об отключениях узлов (это делается с помощью простого сетевого пинга). Эти отказы узлов могут использоваться для изменения правил балансировки нагрузки или перехода к другому мастеру и т. Д.

Этот пинг означает, что существует задержка при обнаружении отказов узла. Обнаружение мертвого однорангового узла (или мертвой ссылки на него) может занять несколько секунд.

Если супервизор и процесс работают локально, сбой и сигнал супервизору почти мгновенно.

5
ответ дан 6 December 2019 в 00:08
поделиться

Я думаю, вы имеете в виду под процессом супервизора portmapper. Вы можете использовать Erlang portmapper / инфраструктуру через JInterface - таким образом вы избегаете изобретать колесо - если вы все еще хотите, вы получите по крайней мере все интерфейсы, описанные там.

0
ответ дан 6 December 2019 в 00:08
поделиться

Похоже, что кто-то реализовал аналогичную стратегию в Scala. .

0
ответ дан 6 December 2019 в 00:08
поделиться

Erlang - это открытый исходный код, что означает, что вы можете загрузить исходный код и получить окончательный ответ о том, как Erlang делает это.

Как Erlang выполняет этот мониторинг, особенно в распределенном сценарии? Как можно быть уверенным, что процесс действительно умер? Сердце бьется? Что-то встроено в среду выполнения?

Я считаю, что это сделано во время выполнения BEAM. Когда процесс умирает, сигнал посылается всем связанным с ним процессам. Полное обсуждение см. В главе 9 Programming Erlang .

Что, если сетевой кабель отключен - предполагается, что другие процессы прекратили работу, если он не может связаться с ними? и т. д.

В Erlang вы можете выбрать мониторинг узла и получить {node_up, Сообщения Node} и {node_down, Node} . Я предполагаю, что они также будут отправлены, если вы больше не сможете разговаривать с узлом. Как вы с ними справитесь, зависит от вас.

-1
ответ дан 6 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: