Зависание - программа - Большая Энциклопедия Нефти и Газа, статья, страница 2
Глупые женятся, а умные выходят замуж. Законы Мерфи (еще...)

Зависание - программа

Cтраница 2


Обратите внимание, что при многократном щелчке на кнопке Current Form Object вы получаете все больше текста, и текст поля MEMO включается в поток. Через несколько раз выполнение всей операции становится чрезвычайно медленным, вплоть до того, что создается впечатление зависания программы. В этом фрагменте видна гибкость использования потоков - можно написать общую процедуру, которую затем использовать для конвертирования любого потока.  [16]

Присваивая указателю нулевое значение, например следующим выражением: rayPtr 0, вы тем самым превращаете блуждающий указатель в нулевой. Еще одна опасность блуждающих указателей состоит в том, что, дважды применив к одному и тому же указателю оператор delete, вы тем самым создадите неопределенную ситуацию, которая может привести к зависанию программы. Этого не случится, если освобожденному указателю будет присвоено нулевое значение, Присвоение освобожденному указателю - как блуждающему, так и нулевому - нового значения ( т.е. использование выражения myPtr 5) недопустимо, но если в случае с пустым указателем об этом вам сообщит компилятор, то в случае с блуждающим указателем вы узнаете об этом по зависанию программы в самый неподходящий момент.  [17]

Присваивая указателю нулевое значение, например следующим выражением: rayPtr 0, вы тем самым превращаете блуждающий указатель в нулевой. Еще одна опасность блуждающих указателей состоит в том, что, дважды применив к одному и тому же указателю оператор delete, вы тем самым создадите неопределенную ситуацию, которая может привести к зависанию программы. Этого не случится, если освобожденному указателю будет присвоено нулевое значение, Присвоение освобожденному указателю - как блуждающему, так и нулевому - нового значения ( т.е. использование выражения myPtr 5) недопустимо, но если в случае с пустым указателем об этом вам сообщит компилятор, то в случае с блуждающим указателем вы узнаете об этом по зависанию программы в самый неподходящий момент.  [18]

G ( см. § 2.3) соответствует модели распределенных вычислений, в которой процессы взаимодействуют посредством асинхронного обмена сообщениями через буферы. Как уже говорилось, процессы могут иметь как входные, так и выходные либо только входные буферы. Семантически обе модели эквивалентны. Проблема блокировки, или реализуемости потоковых моделей, заключается в таком согласовании параметров буферов ( очередей сообщений), чтобы учесть все допустимые истории процессов программы, когда ни один из них не блокируется из-за отсутствия входных сообщений. Исследование реализуемости вычислений может быть сведено к процедуре разметки М - сети. Напомним, маркировка входных и выходных позиций вершин М - сети соответствует ширине буфера ( см. рис. 2.6 и рис. 2.7), а метки дуг позволяют получить число сообщений ( или глубину буфера), гарантирующее отсутствие зависаний программы при любых допустимых историях процессов.  [19]



Страницы:      1    2