Я думаю, что это сводится к персональному предпочтению. Я доволен c#, и я хочу разработать приложения, что я могу работать на своем Ноутбуке Ubuntu или своем Ноутбуке Vista. Поэтому я использую моно. Если я был более доволен Java, то это, вероятно, что я использовал бы.
Просто мои 2 цента.
Один из потоков вызовет OutOfMemoryError
во время выделения памяти new
. Чтобы избежать перебоев, вероятно, будет освобожден значительный объем памяти после возникновения ошибки. Таким образом, другие потоки могут продолжать работу и вряд ли будут выполнять OOME в течение некоторого времени.
Если OOME не перехвачено, поток завершится и будет вызван обработчик неперехваченных исключений. При выходе поток и связанные с ним объекты будут доступны для сборки мусора как обычно (при условии отсутствия ссылок другими способами).