Re[4]: Java Parallel computing: multicore, Erlang, Scala
От: yumi  
Дата: 18.11.08 09:42
Оценка: +2
Здравствуйте, Nicht, Вы писали:

N>Опять же мне не понятно что значит shared memory. Опять же повторюсь что потоки в жава оперируют своими кусками памяти и время от времени синхронизируются между собой. А уж как этот процесс себе в мозгу представлять, либо мессагами либо просто синхронизацией, от этого команды процессора не поменяются.


Эммм... либо Вы какой-то другой жавой пользуетесь или я чего-то упустил в своей жизни. Но насколько я знаю, потоки в жава разделяют память в контексте процесса. У каждого процесса, да своя память, а у потоков живущих в ней, она одна. Так вот, вся проблема в том, что когда несколько потоков начинают использовать одну и ту же область памяти, начинаются жуткие проблемы в виде дедлоков, гонок и прочих проблем. В эрланге как поступили, да очень просто, сделали так, чтобы у каждого потока была своя область памяти к которой имеет доступ только этот поток. Соответсвенно все проблемы связанные с дедлоками и гонками отпадают как класс.

N>А в erlang прям "Дивный новый мир". Простой пример. есть у меня адрес и индекс. Понятно что они всегда толжны соответствовать друг другу. Как в таком случае без синхронизации? (Пример гипотетический — так что не придерайся). Опять же, повторюсь что вся эта erlang модель в java да и везде, называется Compare and Set. Это сравнительно новая технология в процессорах позволяет менять данные не блокируясь на них. Там уже люди кучу алгоритмов напридумывали, который используются в java.util.concurrent на пример.


Боюсь Вы совсем не понимаете, что такое Эрланг.

N>Да, в джава нужно это писать такой код. Но многопоточное программирование — это сфера где люди не выдерживают, куда уж там машинам

N>И библиотеки кстати совсем даже не сторонние, а наоборот совсем даже стандартные.

Без поддержки виртуальной машины, это в принципе невозможно.
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.