In object-oriented programming, as in the real world, objects interact with each other. This interaction does not usually happen in isolation. Picture, for example, throngs of people interacting at rush hour in the business district of a big city. A program that aspires to simulate the real world would have to enable many objects to interact at any given time. That could mean thousands of objects sending messages to each other, thousands of methods running at once. In REXX, this simultaneous activity is called concurrency. To be precise, the concurrency is object-based concurrency because it involves objects, as opposed to, say, processes or threads.
REXX objects are inherently concurrent, and this concurrency takes two forms:
Default settings in REXX allow full inter-object concurrency but limited intra-object concurrency. Some situations will make it desirable to use special REXX instructions, routines, or classes to make full intra-object concurrency happen. First, let's look at what is automatic.