Презентация ПРОЦЕСС И ПОТОК онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему ПРОЦЕСС И ПОТОК абсолютно бесплатно. Урок-презентация на эту тему содержит всего 23 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » ПРОЦЕСС И ПОТОК
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:23 слайда
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:75.50 kB
- Просмотров:58
- Скачиваний:1
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
Содержание слайда: Процесс - экземпляр выполняемого приложения. При запуске приложения происходит выделение памяти под процесс, в часть которой и загружается код программы.
Процесс - экземпляр выполняемого приложения. При запуске приложения происходит выделение памяти под процесс, в часть которой и загружается код программы.
Поток - объект внутри процесса, отвечающий за выполнение кода и получающий для этого процессорное время.
№3 слайд
Содержание слайда: Каждый поток может создать другой поток и т.д.
Каждый поток может создать другой поток и т.д.
Каждый процесс имеет свой уникальный идентификатор – целое число, назначаемое операционной системой при создании процесса.
Потоки не могут существовать отдельно от процесса, т.е. каждый поток принадлежит какому-то процессу и этот поток выполняет код, только в адресном пространстве этого процесса.
Поток не может выполнить код чужого процесса.
№4 слайд
Содержание слайда: В 32-х разрядных версиях Windows используется вытесняющая многозадачность
В 32-х разрядных версиях Windows используется вытесняющая многозадачность
ОС разделяет процессорное время между разными приложениями и потоками на основе вытеснения. Разделение происходит в основном благодаря приоритету потока.
Чем выше приоритет, тем больше процессорного времени выделяется этому потоку. Потоки с одинаковым приоритетом будут получать одинаковое количество процессорного времени.
№8 слайд
Содержание слайда: Назовем свой поток tnew
Код созданного для потока модуля:
unit MyThread;
interface
uses
Classes;
type
T tnew = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
implementation
{ Important: Methods and properties of objects in VCL can only be used in a
method called using Synchronize, for example,}
Synchronize(UpdateCaption);
procedure Ttnew.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ TCountObj }
procedure TCountObj.Execute;
begin
{ Place thread code here }
end;
end.
№9 слайд
Содержание слайда: У объекта есть только одна процедура Execute. В любых потоках эта процедура обязана быть переопределена, и в ней должен быть написан собственный код. Это связано с тем, что в объекте TThread, эта процедура объявлена как абстрактная (abstract) – пустая. Это значит, что процедуре дали имя, выделили место, но её код должен быть написан объектами потомками. Метод Execute – это и есть заготовка для кода потока. То, что написано здесь будет выполняться параллельно основной задаче.
У объекта есть только одна процедура Execute. В любых потоках эта процедура обязана быть переопределена, и в ней должен быть написан собственный код. Это связано с тем, что в объекте TThread, эта процедура объявлена как абстрактная (abstract) – пустая. Это значит, что процедуре дали имя, выделили место, но её код должен быть написан объектами потомками. Метод Execute – это и есть заготовка для кода потока. То, что написано здесь будет выполняться параллельно основной задаче.
№11 слайд
Содержание слайда: Переменную index объявим как integer в разделе private объекта потока. Там же объявим процедуру UpdateLabel. Эта процедура выглядит так:
Переменную index объявим как integer в разделе private объекта потока. Там же объявим процедуру UpdateLabel. Эта процедура выглядит так:
procedure TCountObj.UpdateLabel;
begin
Form1.Label1.Caption:=IntToStr(Index);
end;
№14 слайд
Содержание слайда: Главная программа
В раздел uses главной формы (самый первый, который идёт после interface) добавяемл модуль потока MyThread. Это связано с тем, что в разделе private нужно объявить переменную имеющую тип нашего объекта. Если добавить имя модуля во второй раздел uses, то он находиться ниже той части кода, где нужно написать объявление. Именно поэтому добавлять модуль MyThread нужно в первый раздел uses.
№16 слайд
Содержание слайда: возможности потоков
Suspend - приостанавливает поток. Для вызова нужно написать co.Suspend. Чтобы возобновить работу с этой же точки нужно вызвать Resume.
Priority- устанавливает приоритет потока. Например Priority:=tpIdle;
tpIdle - поток будет работать только когда процессор бездельничает.
tpLowest - самый слабый приоритет
tpLower - слабый приоритет
tpNormal - нормальный
tpHigher - высокий
tpHighest - самый высокий
tpTimeCritical - критичный.
№17 слайд
Содержание слайда: Suspended - если этот параметр true, то поток находится в паузе.
Suspended - если этот параметр true, то поток находится в паузе.
Terminated - если true, то поток должен быть остановлен, иначе поток должен продолжать работу.
Terminate – остановить выполнение потока.
FreeOnTerminate – если это свойство равно true, то по завершении выполнения процедуры Execute поток самоуничтожиться.
№18 слайд
Содержание слайда: сообщение SendMessage
Каждый раз, когда надо обновить содержимое текста мы можем посылать окну сообщение SendMessage с указанием значения, которое надо установить. Главное окно будет получать это сообщение и компонент сам изменит заголовок. В этом случае мы не обращаемся к главному окну из потока, а только отправляем сообщение.
№20 слайд
Содержание слайда: const
PROGRESS_POS = WM_USER+1;
В объявление класса формы добавим новый метод, а затем и его реализацию:
TForm1 = class(TForm)
Button1: TButton;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
private
procedure SetProgressPos(var Msg: TMessage); message PROGRESS_POS;
public
{ Public declarations }
end;
...
procedure TForm1.SetProgressPos(var Msg: TMessage);
begin
ProgressBar1.Position:=Msg.LParam;
end;
Теперь мы немного изменим, можно сказать даже упростим, реализацию метода Execute нашего потока:
procedure TNewThread.Execute;
var
i: integer;
begin
for i:=0 to 100 do
begin
sleep(50);
SendMessage(Form1.Handle,PROGRESS_POS,0,i);
end;
end;
const
PROGRESS_POS = WM_USER+1;
В объявление класса формы добавим новый метод, а затем и его реализацию:
TForm1 = class(TForm)
Button1: TButton;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
private
procedure SetProgressPos(var Msg: TMessage); message PROGRESS_POS;
public
{ Public declarations }
end;
...
procedure TForm1.SetProgressPos(var Msg: TMessage);
begin
ProgressBar1.Position:=Msg.LParam;
end;
Теперь мы немного изменим, можно сказать даже упростим, реализацию метода Execute нашего потока:
procedure TNewThread.Execute;
var
i: integer;
begin
for i:=0 to 100 do
begin
sleep(50);
SendMessage(Form1.Handle,PROGRESS_POS,0,i);
end;
end;
№21 слайд
Содержание слайда: TNewThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TNewThread }
procedure TNewThread.Execute;
begin
while true do {ничего не делаем};
end;
procedure TForm1.Button1Click(Sender: TObject);
var
NewThread: TNewThread;
begin
NewThread:=TNewThread.Create(true);
NewThread.FreeOnTerminate:=true;
NewThread.Priority:=tpLower;
NewThread.Resume;
end;
TNewThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TNewThread }
procedure TNewThread.Execute;
begin
while true do {ничего не делаем};
end;
procedure TForm1.Button1Click(Sender: TObject);
var
NewThread: TNewThread;
begin
NewThread:=TNewThread.Create(true);
NewThread.FreeOnTerminate:=true;
NewThread.Priority:=tpLower;
NewThread.Resume;
end;
№23 слайд
Содержание слайда: У TCriticalSection есть два нужных нам метода, Enter и Leave, соответственно вход и выход из неё. Поместим наш код в критическую секцию:
procedure TNewThread.Execute;
var
i: integer;
begin
CriticalSection.Enter;
for i:=0 to 100 do
begin
sleep(50);
SendMessage(Form1.Handle,PROGRESS_POS,0,i);
end;
CriticalSection.Leave;
end;
У TCriticalSection есть два нужных нам метода, Enter и Leave, соответственно вход и выход из неё. Поместим наш код в критическую секцию:
procedure TNewThread.Execute;
var
i: integer;
begin
CriticalSection.Enter;
for i:=0 to 100 do
begin
sleep(50);
SendMessage(Form1.Handle,PROGRESS_POS,0,i);
end;
CriticalSection.Leave;
end;
Скачать все slide презентации ПРОЦЕСС И ПОТОК одним архивом:
-
Планирование процессов и потоков
-
Ассоциативные и потоковые процессоры
-
Процессы и потоки данных. (понятие процессов в операционных системах. Виды процессов. Потоки. Средства синхронизации потоков в ОС)
-
Содержание доклада Определение понятия «конфликт»; Причины этнических конфликтов; Процесс нарастания конфликта; Этнические конф
-
Информационные технологии в образовательном процессе Григорьева Светлана Владиславовна, к. ф. -м. н, доцент. - презентация
-
Организация учебно- воспитательного процесса в ГОУ СОШ 842. - презентация
-
Курсовая работа на тему : « Расчет процесса нагрева ( охлаждения ) бесконечного цилиндра при регулярном режиме » Исполнитель : Студе
-
«Ретроспектива» в тестировании: улучшаем проекты и процессы Анна Скумина. Apriorit. - презентация
-
Рефлексивная деятельность в процессе обучения в начальной школе. - презентация
-
Отчет о научно-исследовательской работе по дисциплине «Компьютерное моделирование технологических процессов» Руководитель Доце