realizowanie 2 algorytmow naraz

0

Witam. Mam pytanie. Czy jest mozliwosc aby zaprogramowac tak program, aby realizowal on dwa algorytmy w jednym momencie (moze istnieje jakas funkcja do tego albo cos w tym stylu? :) ). Na schemacie blokowym to by tak wygladalo:

(.....)
   |
   |
   |

|-----------|

   / \
  |   |
  |   |
(.......)
0

Poczytaj o programowaniu współbieżnym tu masz link do ciekawej strony:
http://wazniak.mimuw.edu.pl/index.php?title=Programowanie_wsp%C3%B3%C5%82bie%C5%BCne_i_rozproszone

0

Najlepiej stworzyć dwa wątki, z których każdy będzie wykonywał funkcje z realizacjami algorytmów. Wykorzystując win32 możesz na przykład skorzystać z CreateThread, natomiast pod linuxem z funkcji fork.

Jeżeli później ma nastąpić synchronizacja wątków, to będziesz musiał sprawdzić stan wykonania wątków. Można to zrobić na przykład zrobić korzystając z funkcji

BOOL WINAPI GetExitCodeThread(
__in HANDLE hThread, //uchwyt do watka utworzonego przy pomocy CreateThread
__out LPDWORD lpExitCode //zmienna do której zostanie zwrócony status wykonania watka
);

jeśli pod zmienną lpExitCode zostanie zwrócony status: STILL_ACTIVE, to znaczy że wątek jeszcze sie nie zakończył.

Czyli sprawdzanie może odbywać się na przykład w pętli wiecznej z której wyjście nastąpi wtedy gdy oba wątki sie zakonczą.

Istnieje jeszcze coś takiego jak OpenMP - to jest wręcz stworzone do programowania aplikacji równoległych (najlepiej sprawdza się na maszynach wieloprocesorowych)

0

do RutkowskiT - funkcja fork nie tworzy wątku tylko proces potomny a to jest wielka różnica.

0

do _amator - zgadza się powinno być: "Najlepiej stworzyć dwa wątki lub procesy"

Także pod Win32 można to rozwiązać za pomocą procesów używając do tworzenia procesów funkcji CreateProcess a do sprawdzania zakończenia wykonania programów GetExitCodeProcess. W wypadku procesów algorytmy musiałyby zostać zaimplementowane w oddzielnych plikach wykonywalnych które zostałyby podane jako parametr do CreateProcess.

przepraszam za niedociągnięcie i dzięki za skorygowanie

pozdrawiam

0

Dodam jeszcze że w środowisku unixopodobnym również można skorzystać z wątków.
Pozdrawiam.

0

a pod win32 takze z wlokien i mikrowlokien..

1 użytkowników online, w tym zalogowanych: 0, gości: 1