C многозадачностью хорошо много где. Пока это многозадачность, а не треды в общем адресном прострастве. shared memory, mmap это все пожалуйста. Но по умолчанию ни байта общего между разными потоками выполнения. Erlang спасает именно то, что в нем фактически нет переменных. Там переменными называются символы с однократным присваиванием. Присвоил - и изменить уже нельзя.
Что касается Ruby, то это вполне адекватный инструмент для СКРИПТОВ. Проблема на самом деле та же самая - все на свете запихнуть в один общий процесс. А вы так не делайте. Не для того десятилетиями разрабатывали механизмы защиты памяти в процессорах. Пусть виртуальная машина стартует и завершается десять-сто раз в секунду, она легкая, процессор потянет. Зато никаких проблем с утечками.
no subject
shared memory, mmap это все пожалуйста. Но по умолчанию ни байта общего между разными потоками выполнения.
Erlang спасает именно то, что в нем фактически нет переменных. Там переменными называются символы с однократным присваиванием. Присвоил - и изменить уже нельзя.
Что касается Ruby, то это вполне адекватный инструмент для СКРИПТОВ. Проблема на самом деле та же самая - все на свете запихнуть в один общий процесс. А вы так не делайте. Не для того десятилетиями разрабатывали механизмы защиты памяти в процессорах.
Пусть виртуальная машина стартует и завершается десять-сто раз в секунду, она легкая, процессор потянет. Зато никаких проблем с утечками.