" (строка) o" приведет к InvalidCastException, поскольку нет никакого прямого броска.
"o, поскольку строка" приведет к s быть нулевой ссылкой, а не выданным исключением.
"o. ToString ()" не является составом исполнителей никакого серовато-синего вида, это - метод, это реализовано объектом, и таким образом так или иначе, каждым классом в .net, который "делает что-то" с экземпляром класса, к этому обращаются и возвращает строку.
не забывают, что для преобразования в строку, существует, также Преобразовывают. ToString (someType instanceOfThatType), где someType является одним из ряда типов, по существу базовые типы платформ.
Erlang OTP Контроль обычно не выполняется между процессами на разных узлах. Это сработает, но лучше всего сделать это по-другому.
Обычный подход - написать все приложение так, чтобы оно работало на каждой машине, но приложение знает, что оно не одно. И в какой-то части приложения есть монитор узлов, поэтому он знает об отключениях узлов (это делается с помощью простого сетевого пинга). Эти отказы узлов могут использоваться для изменения правил балансировки нагрузки или перехода к другому мастеру и т. Д.
Этот пинг означает, что существует задержка при обнаружении отказов узла. Обнаружение мертвого однорангового узла (или мертвой ссылки на него) может занять несколько секунд.
Если супервизор и процесс работают локально, сбой и сигнал супервизору почти мгновенно.
Я думаю, вы имеете в виду под процессом супервизора portmapper. Вы можете использовать Erlang portmapper / инфраструктуру через JInterface - таким образом вы избегаете изобретать колесо - если вы все еще хотите, вы получите по крайней мере все интерфейсы, описанные там.
Похоже, что кто-то реализовал аналогичную стратегию в Scala. .
Erlang - это открытый исходный код, что означает, что вы можете загрузить исходный код и получить окончательный ответ о том, как Erlang делает это.
Как Erlang выполняет этот мониторинг, особенно в распределенном сценарии? Как можно быть уверенным, что процесс действительно умер? Сердце бьется? Что-то встроено в среду выполнения?
Я считаю, что это сделано во время выполнения BEAM. Когда процесс умирает, сигнал посылается всем связанным с ним процессам. Полное обсуждение см. В главе 9 Programming Erlang .
Что, если сетевой кабель отключен - предполагается, что другие процессы прекратили работу, если он не может связаться с ними? и т. д.
В Erlang вы можете выбрать мониторинг узла и получить {node_up, Сообщения Node}
и {node_down, Node}
. Я предполагаю, что они также будут отправлены, если вы больше не сможете разговаривать с узлом. Как вы с ними справитесь, зависит от вас.