blacha23 Geschrieben 13. November 2008 Geschrieben 13. November 2008 hey, basierend auf dem Graphen soll ich ein Programm in Pseudocode schreiben, das soweit wie möglich Funktionen parallel ausführt http://img219.imageshack.us/my.php?image=techgi3qc7.jpg ich kann leider kein fork/join u. parbegin/parend benutzen. Bis jetzt ist mir klar geworden, dass 2 Aktionen nebenläufig sind, wenn keine von ihnen Voraussetzung der anderen ist. Nun weiss ich nicht wie ich das schreiben soll.. danke im Voraus für welche Hinweise
flashpixx Geschrieben 13. November 2008 Geschrieben 13. November 2008 hey, basierend auf dem Graphen soll ich ein Programm in Pseudocode schreiben, das soweit wie möglich Funktionen parallel ausführt Warum postest Du dann in C/C++ wenn es Pseudocode sein soll? Ich verstehe aber definitiv noch nicht so ganz das Problem. Im Grunde kann ich das z.B. via Threads lösen, die synchronisiert werden Phil
Klotzkopp Geschrieben 13. November 2008 Geschrieben 13. November 2008 ich kann leider kein fork/join u. parbegin/parend benutzen. Ich finde es etwas seltsam, dass du bei einer Pseudocode-Aufgabe irgendwelche konkreten Implementierungen explizit nicht benutzen darfst. Was darfst du denn benutzen? Hast du da ähnlich konkrete Anweisungen?
blacha23 Geschrieben 13. November 2008 Autor Geschrieben 13. November 2008 (bearbeitet) threads sind erlaubt, int main (void){ int a,b,c,d,e,f,g,h,i a createThread (b,c) createThread (d,e) f createThread (g,h) i } so was wird gehen oder eher nicht? Bearbeitet 13. November 2008 von blacha23
Klotzkopp Geschrieben 13. November 2008 Geschrieben 13. November 2008 so was wird gehen oder eher nicht?Du darfst nicht vergessen, an den Stellen, an denen die parallelen Operationen wieder zusammenlaufen, auf die jeweiligen Threads zu warten.
blacha23 Geschrieben 13. November 2008 Autor Geschrieben 13. November 2008 int main (void){ int a,b,c,d,e,f,g,h,i a createThread1 (b,c) wait Thread2,Thread3 createThread2 (d,e) wait Thread3 f createThread3 (g,h) i }
Klotzkopp Geschrieben 13. November 2008 Geschrieben 13. November 2008 Du brauchst nur einen neuen Thread für b oder c, nicht für beide. Außerdem ist es nicht sonderlich sinnvoll, auf einen Thread zu warten, bevor du ihn startest.
blacha23 Geschrieben 13. November 2008 Autor Geschrieben 13. November 2008 int main (void){ int a,b,c,d,e,f,g,h,i a createThread1 ( wait Thread1 createThread2 © wait Thread2 createThread3 (d) wait Thread3 createThread4 (e) wait Thread4 f createThread5 (g) wait Thread5 createThread6 (h) wait Thread5 i } na ja, aber wie führe ich dann die threads die gewartet haben mit den anderen zusammen?
Klotzkopp Geschrieben 13. November 2008 Geschrieben 13. November 2008 int main (void){ int a,b,c,d,e,f,g,h,i a createThread1 ( wait Thread1 createThread2 © wait Thread2 createThread3 (d) wait Thread3 createThread4 (e) wait Thread4 f createThread5 (g) wait Thread5 createThread6 (h) wait Thread5 i }Wenn du jeden Thread startest und gleich danach darauf wartest, führst du doch wieder nur alles nacheinander aus. Ich würde das so machen: Ausführen: aThread starten: bAusführen: cWarten auf b-Thread usw.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden