Редактирование: ПОД (3 поток), Ответы
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 323 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1407: | Строка 1407: | ||
Операторы SEND и RECEIVE имеют вид: | Операторы SEND и RECEIVE имеют вид: | ||
- | + | 1.0 | |
- | + | SEND (sm [,ss]...) [список] RECEIVE (rm [,rs]...) [список] | |
- | + | 1.5 где | |
+ | sm или rm - спецификация сообщения - определяет адресата | ||
(процесс или процессы, которым посылается | (процесс или процессы, которым посылается | ||
сообщение) или отправителя и способ синхронизации; | сообщение) или отправителя и способ синхронизации; | ||
Строка 1418: | Строка 1419: | ||
Вид спецификации сообщения sm и rm зависит от способа синхронизации. | Вид спецификации сообщения sm и rm зависит от способа синхронизации. | ||
- | а) Синхронный способ: | + | а) Синхронный способ: sm есть [TASKID =] адресат, |
- | + | ||
где адресат есть adr или ALL, а | где адресат есть adr или ALL, а | ||
Строка 1425: | Строка 1425: | ||
Если adr - имя программной единицы-задачи, то сообщение посылается всем процессам программы, образованным по образцу указанной программной единицы (исключая посылающую).процедуры. | Если adr - имя программной единицы-задачи, то сообщение посылается всем процессам программы, образованным по образцу указанной программной единицы (исключая посылающую).процедуры. | ||
- | ALL - означает, что сообщение посылается всем процессам программы, образованным на момент выполнения оператора передачи сообщения,исключая процесс-отправитель. | + | ALL - означает, что сообщение посылается всем процессам программы, образованным на момент выполнения оператора передачи сообщения,исключая процесс-отправитель. rm есть [TASKID =] t, где t - переменная или элемент массива типа TASKID; параметр специфицирует процесс - отправитель. |
- | + | ||
- | где t - переменная или элемент массива типа TASKID; параметр специфицирует процесс - отправитель. | + | |
Когда adr (rm) - значение типа TASKID, оно должно ссылаться на незавершенный процесс. | Когда adr (rm) - значение типа TASKID, оно должно ссылаться на незавершенный процесс. | ||
б) Асинхронный способ | б) Асинхронный способ | ||
- | + | sm есть [TAG=] ie, [TASKID =] адресат | |
- | + | ||
- | + | или TASKID = адресат, [TAG =] ie | |
- | + | ||
+ | rm есть [TAG=] ie [,[TASKID =] t] | ||
+ | |||
+ | или TASKID = t, [TAG =] ie | ||
где адресат и t определяются как rm для синхронного способа, | где адресат и t определяются как rm для синхронного способа, | ||
ie - выражение целого типа, значение которого определяет тег сообщения. | ie - выражение целого типа, значение которого определяет тег сообщения. | ||
- | |||
в) Способ без ожидания | в) Способ без ожидания | ||
- | + | ||
- | + | sm есть [TASKID =] адресат, FLAG = l | |
- | + | ||
+ | rm есть [TASKID =] adr, FLAG = l | ||
+ | |||
+ | или [FLAG =] l | ||
где | где | ||
Строка 1480: | Строка 1483: | ||
2. Если значение переменной адресата есть .NOTASKID. или ссылка на завершенный процесс, оператор обмена для этого процесса не выполняется, а спецификация SENDER получает значение .NOTASKID. . | 2. Если значение переменной адресата есть .NOTASKID. или ссылка на завершенный процесс, оператор обмена для этого процесса не выполняется, а спецификация SENDER получает значение .NOTASKID. . | ||
- | |||
3.Не считается ошибкой наличие в почтовом ящике невостребованных сообщений при завершении процесса. | 3.Не считается ошибкой наличие в почтовом ящике невостребованных сообщений при завершении процесса. | ||