16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

longjmp(bufor2,2);<br />

}<br />

}<br />

Procesy odbywają się z różną prędkością. Kolejność uruchamiania<br />

procesów będzie:<br />

- proces3()<br />

- proces2()<br />

- proces1()<br />

Po uruchomieniu programu zauważysz, że proces pierwszy (pisania)<br />

został spowolniony. Można jednak temu zaradzić przez ustawienie<br />

flag i priorytetów. Jeśli dla przykładu uważamy, że pisanie jest<br />

ważniejsze, możemy wykrywać zdarzenie - naciśnięcie klawisza w<br />

każdym z mniej ważnych procesów i przerywać wtedy procesy mniej<br />

ważne. Wprowadzanie tekstu w przykładzie poniżej nie będzie<br />

spowolnione przez pozostałe procesy.<br />

[P077.CPP]<br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

void proces1(void);<br />

void proces2(void);<br />

void proces3(void);<br />

jmp_buf BuforStanu_1, BuforStanu_2;<br />

char znak;<br />

int pozycja = 1;<br />

int main(void)<br />

{<br />

clrscr();<br />

if(setjmp(BuforStanu_1)) proces1();<br />

if(setjmp(BuforStanu_2)) proces2();<br />

proces3();<br />

return 0;<br />

}<br />

void proces1(void)<br />

{<br />

while(kbhit())<br />

{<br />

gotoxy(1,1);<br />

printf("PROCES1, Pisz tekst: [Kropka - Koniec]");<br />

gotoxy(pozycja,2);<br />

znak = getch();<br />

- 221-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!