XXIIVV

Tuple spaces is a coordination model for communication in parallel computing environments.

A tuple space is a place where processes can put, read, and take tuples, which are in turn just sequences of values. For example, ("job", 12, 1.23) is a tuple made up of a string, an integer, and a floating-point number; a tuple space can contain zero or more copies of that tuple, or of tuples containing other types of values, simple or complex.

A process puts something in tuple space with put(a, b, c, ...), take something out with take(a, b, c, ...), or copy something leaving the original in tuple space with copy(a, b, c, ...). The arguments to take and copy are either actual values, or variables with specific types; values match themselves, while types match things of that type. For example:

There are non-blocking versions of take and copy called try_take and try_copy that either match right away and return true, assigning values to variables in their patterns, or fail to match, don't do any assignment, and return false.

Summary