Многопоточность
Описание работы
Работа пользователя Ruivit
Потоки появились еще в Windows NT, но до определенного времени редко использовались прикладными программистами. В наше время, когда даже самый захудалый офисный компьютер обладает как минимум двумя процессорными ядрами, не использовать потоки в программах в наше время просто неприлично. В реферате мы рассмотрим реализацию многопоточности в Delphi 6, Delphi 7 и Delphi 2009. В качестве введения приведу две основные проблемы, возникающие в многопоточном программировании.
В процессе разработки многопоточного приложения приходится решать две взаимосвязанные проблемы – разграничение доступа к ресурсам и взаимоблокировки. Допустим несколько потоков обращаются к одному и тому же ресурсу (области памяти, файлу, устройству) при допущений ошибок в программировании приложения. Может возникнуть ситуация, когда сразу несколько потоков попытаются выполнить некие манипуляции с общим ресурсом. При этом нормальная последовательность операций при обращении к ресурсу, скорее всего, будет нарушена. Проблема с разграничением доступа может возникнуть даже при очень простых операциях. К примеру, у нас есть программа, которая создает несколько потоков. Каждый поток выполняет свою определенную задачу, и затем завершается. Мы хотим контролировать определенное количество потоков, активных в данное время, и с этой целью вводим счетчик потоков – глобальную переменную Counter.
В процессе разработки многопоточного приложения приходится решать две взаимосвязанные проблемы – разграничение доступа к ресурсам и взаимоблокировки. Допустим несколько потоков обращаются к одному и тому же ресурсу (области памяти, файлу, устройству) при допущений ошибок в программировании приложения. Может возникнуть ситуация, когда сразу несколько потоков попытаются выполнить некие манипуляции с общим ресурсом. При этом нормальная последовательность операций при обращении к ресурсу, скорее всего, будет нарушена. Проблема с разграничением доступа может возникнуть даже при очень простых операциях. К примеру, у нас есть программа, которая создает несколько потоков. Каждый поток выполняет свою определенную задачу, и затем завершается. Мы хотим контролировать определенное количество потоков, активных в данное время, и с этой целью вводим счетчик потоков – глобальную переменную Counter.