Пространство Калаби — Яу
- 1 year ago
- 0
- 0
Пространство кортежей ( англ. tuple space ) — реализация парадигмы ассоциативной памяти для параллельных/ распределённых вычислений. Она предоставляет репозиторий кортежей с параллельным доступом. Например, можно представить группу процессоров, которые вычисляют данные и сохраняют их в пространство кортежей, и группу процессоров, которые ищут данные в пространстве по шаблону и используют их. Пространство кортежей можно рассматривать как разновидность .
Пространства кортежей являются теоретической основой языка Linda .
Реализации пространств кортежей были разработаны для Java , Smalltalk , Ruby , TCL , Python , Lua , Лисп и Пролог .
JavaSpaces — служба, предоставляющая распределённый механизм обмена и координирования объектов Java. Она используется для сохранения состояния распределённой системы и реализации .
// An Entry class
public class SpaceEntry implements Entry
{
public final String message = "Hello World!";
public Integer count = 0;
public String service() {
count = count + 1;
return message;
}
public String toString() {
return "Count: " + count;
}
}
// Hello World! server
public class Server
{
public static void main(String[] args) throws Exception
{
SpaceEntry entry = new SpaceEntry(); // Create the Entry object
JavaSpace space = (JavaSpace)space(); // Create an Object Space
// Register and write the Entry into the Space
space.write(entry, null, Lease.FOREVER);
// Pause for 10 seconds and then retrieve the Entry and check its state.
Thread.sleep(10*1000);
SpaceEntry e = space.read(new SpaceEntry(), null, Long.MAX_VALUE);
System.out.println(e);
}
}
// Client
public class Client
{
public static void main(String[] args) throws Exception
{
JavaSpace space = (JavaSpace) space();
SpaceEntry e = space.take(new SpaceEntry(), null, Long.MAX_VALUE);
System.out.println(e.service());
space.write(e, null, Lease.FOREVER);
}
}