There are some conditions in which all of the threads in your program will pause. One reason this occurs is when some event in the system causes the entire runtime to suspend. The pause ends when the runtime regains control. The main cases where this occurs are:
Although the host system does not handle these tasks in character-based versions of the runtime, architectural similarities between the character and graphical versions cause these tasks to produce the same effect on character systems.
Another reason for all threads in your multithread program to pause is waiting for locked records. You can configure the runtime to automatically wait for locked records by either setting the WAIT-FOR-LOCKS configuration option, or by compiling with the RM/COBOL compatibility (-cr option) and omitting a declarative for this particular file. When you do this in a multi-threaded program, all threads are frozen while waiting for a locked record to unlock. This occurs because the runtime employs a very tight wait loop that does not allow other threads to continue running.