
pobieranie * pdf * do ÂściÂągnięcia * download * ebook
Podobne
- Strona startowa
- Jack L. Chalker Web of the chosen
- Kundera Milan Niewiedza
- Eddings Dav
- Anne McCaffrey Cykl JeśĹźdśĹźcy smoków z Pern (10) Renegaci z Pern
- Coffman Elaine Bestia z Czarnego
- Harris Raye Lynn HiszpaśÂ„ski torreador
- Hollanek Adam, Janicki Jerzy Noc lwowskich profesorów
- Charlotte Lamb Na śÂ›mierć‡ i śźycie
- Gunn James Zamknić™ty śÂ›wiat
- Guy N. Smith Kraby 01 Noc krabów
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- spholonki.keep.pl
[ Pobierz całość w formacie PDF ]
Skorowidz ..................................................................................................................................................... 653
Aplikacje wielowątkowe
Słowo wątek może mieć różne znaczenie. W świecie programistów może oznaczać możliwość
wykonywania wielu czynności naraz. Przykładowo w systemie Windows możemy uruchamiać
kilka programów działających jednocześnie ― każdy program jest osobnym wątkiem. W tym
rozdziale zajmiemy siẹ tworzeniem kilku wątków w ramach jednego procesu.
Wskazówka
Procesem można nazwać każdą aplikacjẹ, uruchomioną w danym momencie. Taką
też terminologiẹ bẹdẹ stosował w dalszej czẹści tego rozdziału. Zatem przyjmijmy,
że proces to egzemplarz aplikacji uruchomiony w systemie.
Czym tak naprawdę są wątki?
Zacznijmy od wyjaśnienia, czym tak naprawdẹ są wątki. Każda aplikacja (proces) działająca
w systemie Windows posiada tzw. wątek główny (ang. primary thread), który może uruchamiać
inne wątki poboczne (ang. secondary threads). W tym samym czasie może działać kilka wątków
pobocznych, które wykonują różne lub te same operacje. Spójrz na rysunek 8.1. Program przed-
stawiony na tym rysunku dokonuje wyszukiwania wielowątkowego, analizując jednocześnie
wszystkie dyski znajdujące siẹ w systemie.
W tym wypadku zadaniem każdego wątku jest wyszukanie plików na osobnym dysku. W rezulta-
cie jeden wątek przypada na każdy dysk, dziẹki czemu wyszukiwanie trwa naprawdẹ szybko.
Wskazówka
Pełny kod źródłowy programu Wyszukiwanie wielowątkowe możesz znaleźć
na płycie CD-ROM w katalogu ../listingi/8/Wyszukiwarka.
310
Część II
Rysunek 8.1. Wyszukiwanie wielowątkowe
Być może to, co napisałem do tej pory przybliżyło Ci trochẹ zasadẹ funkcjonowania wątków.
Wyobraź sobie możliwość wykonywania innych czynności w tle aplikacji ― bez jej jednoczesnego
blokowania. Dajesz użytkownikowi możliwość dokonywania zmian w programie, a w tle może
działać inny wątek, który wykonywać bẹdzie pozostałe operacje.
Klasa TThread
Podczas tworzenia aplikacji wielowątkowych bẹdziemy korzystali z klasy VCL ― .
Istnieje oczywiście możliwość tworzenia wątków przy wykorzystaniu mechanizmów WinAPI,
lecz klasa w dużym stopniu zwalnia nas z mozolnego kodowania ― jest po prostu
łatwiejsza w obsłudze.
Wskazówka
Klasa znajduje siẹ w module Classes.pas.
Deklaracja klasy TThread
Deklaracja klasy znajduje siẹ w pliku Classes.pas i przedstawia siẹ w nastẹpujący sposób:
310
(03‐07‐21/12:46)
C:\Andrzej\PDF\Delphi 7 Kompendium programisty\r08 doc
.
.
Rozdział 8. Aplikacje wielowątkowe
311
Działanie wątku można wstrzymać lub wznowić dziẹki metodom i . Rozpoczẹcie
wątku jest jednak realizowane za pomocą metody .
Tworzenie nowej klasy wątku
Jeżeli chcemy utworzyć nowy wątek, jedynym rozwiązaniem jest zadeklarowanie w kodzie pro-
gramu nowej klasy, dziedziczącej po . Klasẹ tẹ możemy samodzielnie wpisać bezpo-
średnio w kod programu lub skorzystać z kreatora Delphi.
Z menu File wybierz New/Other, co spowoduje otwarcie Repozytorium (o Repozytorium pisałem
w rozdziale 4.). Wystarczy na zakładce New wybrać pozycjẹ Thread Object (rysunek 8.2).
Po naciśniẹciu przycisku OK zostaniesz poproszony o wpisanie nazwy klasy w odpowiednim
oknie. Wpisz np. . Wówczas stworzony zostanie nowy moduł, a w nim deklaracja
nowej klasy (patrz listing 8.1).
312
Część II
[ Pobierz całość w formacie PDF ]